|
@@ -306,14 +306,19 @@ void arch_init_copy_chip_data(struct irq_desc *old_desc,
|
|
|
|
|
|
old_cfg = old_desc->chip_data;
|
|
|
|
|
|
- memcpy(cfg, old_cfg, sizeof(struct irq_cfg));
|
|
|
+ cfg->vector = old_cfg->vector;
|
|
|
+ cfg->move_in_progress = old_cfg->move_in_progress;
|
|
|
+ cpumask_copy(cfg->domain, old_cfg->domain);
|
|
|
+ cpumask_copy(cfg->old_domain, old_cfg->old_domain);
|
|
|
|
|
|
init_copy_irq_2_pin(old_cfg, cfg, node);
|
|
|
}
|
|
|
|
|
|
-static void free_irq_cfg(struct irq_cfg *old_cfg)
|
|
|
+static void free_irq_cfg(struct irq_cfg *cfg)
|
|
|
{
|
|
|
- kfree(old_cfg);
|
|
|
+ free_cpumask_var(cfg->domain);
|
|
|
+ free_cpumask_var(cfg->old_domain);
|
|
|
+ kfree(cfg);
|
|
|
}
|
|
|
|
|
|
void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc)
|