Loading arch/x86/kernel/apic/io_apic.c +0 −120 Original line number Original line Diff line number Diff line Loading @@ -212,126 +212,6 @@ static void free_irq_cfg(unsigned int at, struct irq_cfg *cfg) kfree(cfg); kfree(cfg); } } #if 0 int arch_init_chip_data(struct irq_desc *desc, int node) { struct irq_cfg *cfg; cfg = get_irq_desc_chip_data(desc); if (!cfg) { cfg = alloc_irq_cfg(desc->irq, node); desc->chip_data = cfg; if (!cfg) { printk(KERN_ERR "can not alloc irq_cfg\n"); BUG_ON(1); } } return 0; } /* for move_irq_desc */ static void init_copy_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg, int node) { struct irq_pin_list *old_entry, *head, *tail, *entry; cfg->irq_2_pin = NULL; old_entry = old_cfg->irq_2_pin; if (!old_entry) return; entry = alloc_irq_pin_list(node); if (!entry) return; entry->apic = old_entry->apic; entry->pin = old_entry->pin; head = entry; tail = entry; old_entry = old_entry->next; while (old_entry) { entry = alloc_irq_pin_list(node); if (!entry) { entry = head; while (entry) { head = entry->next; kfree(entry); entry = head; } /* still use the old one */ return; } entry->apic = old_entry->apic; entry->pin = old_entry->pin; tail->next = entry; tail = entry; old_entry = old_entry->next; } tail->next = NULL; cfg->irq_2_pin = head; } static void free_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg) { struct irq_pin_list *entry, *next; if (old_cfg->irq_2_pin == cfg->irq_2_pin) return; entry = old_cfg->irq_2_pin; while (entry) { next = entry->next; kfree(entry); entry = next; } old_cfg->irq_2_pin = NULL; } void arch_init_copy_chip_data(struct irq_desc *old_desc, struct irq_desc *desc, int node) { struct irq_cfg *cfg; struct irq_cfg *old_cfg; cfg = alloc_irq_cfg(desc->irq, node); if (!cfg) return; desc->chip_data = cfg; old_cfg = old_desc->chip_data; 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); } void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc) { struct irq_cfg *old_cfg, *cfg; old_cfg = get_irq_desc_chip_data(old_desc); cfg = get_irq_desc_chip_data(desc); if (old_cfg == cfg) return; if (old_cfg) { free_irq_2_pin(old_cfg, cfg); free_irq_cfg(old_desc->irq, old_cfg); old_desc->chip_data = NULL; } } /* end for move_irq_desc */ #endif #else #else struct irq_cfg *irq_cfg(unsigned int irq) struct irq_cfg *irq_cfg(unsigned int irq) Loading Loading
arch/x86/kernel/apic/io_apic.c +0 −120 Original line number Original line Diff line number Diff line Loading @@ -212,126 +212,6 @@ static void free_irq_cfg(unsigned int at, struct irq_cfg *cfg) kfree(cfg); kfree(cfg); } } #if 0 int arch_init_chip_data(struct irq_desc *desc, int node) { struct irq_cfg *cfg; cfg = get_irq_desc_chip_data(desc); if (!cfg) { cfg = alloc_irq_cfg(desc->irq, node); desc->chip_data = cfg; if (!cfg) { printk(KERN_ERR "can not alloc irq_cfg\n"); BUG_ON(1); } } return 0; } /* for move_irq_desc */ static void init_copy_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg, int node) { struct irq_pin_list *old_entry, *head, *tail, *entry; cfg->irq_2_pin = NULL; old_entry = old_cfg->irq_2_pin; if (!old_entry) return; entry = alloc_irq_pin_list(node); if (!entry) return; entry->apic = old_entry->apic; entry->pin = old_entry->pin; head = entry; tail = entry; old_entry = old_entry->next; while (old_entry) { entry = alloc_irq_pin_list(node); if (!entry) { entry = head; while (entry) { head = entry->next; kfree(entry); entry = head; } /* still use the old one */ return; } entry->apic = old_entry->apic; entry->pin = old_entry->pin; tail->next = entry; tail = entry; old_entry = old_entry->next; } tail->next = NULL; cfg->irq_2_pin = head; } static void free_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg) { struct irq_pin_list *entry, *next; if (old_cfg->irq_2_pin == cfg->irq_2_pin) return; entry = old_cfg->irq_2_pin; while (entry) { next = entry->next; kfree(entry); entry = next; } old_cfg->irq_2_pin = NULL; } void arch_init_copy_chip_data(struct irq_desc *old_desc, struct irq_desc *desc, int node) { struct irq_cfg *cfg; struct irq_cfg *old_cfg; cfg = alloc_irq_cfg(desc->irq, node); if (!cfg) return; desc->chip_data = cfg; old_cfg = old_desc->chip_data; 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); } void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc) { struct irq_cfg *old_cfg, *cfg; old_cfg = get_irq_desc_chip_data(old_desc); cfg = get_irq_desc_chip_data(desc); if (old_cfg == cfg) return; if (old_cfg) { free_irq_2_pin(old_cfg, cfg); free_irq_cfg(old_desc->irq, old_cfg); old_desc->chip_data = NULL; } } /* end for move_irq_desc */ #endif #else #else struct irq_cfg *irq_cfg(unsigned int irq) struct irq_cfg *irq_cfg(unsigned int irq) Loading