[PATCH] sparseirq: mvoe two weak functions to chip.c Impact: fix panic some gcc compiler will remove the weak global blank function Linus noted that we could move those function to other unit to workaround it. try to workaround it: 1. one time path: add printk 2. multi time path: move to chip.c Signed-off-by: Yinghai Lu diff --git a/init/main.c b/init/main.c index d0c5e02..6a7a308 100644 --- a/init/main.c +++ b/init/main.c @@ -542,14 +542,11 @@ void __init __weak thread_info_cache_init(void) { } -int __init __weak arch_early_irq_init(void) -{ - return 0; -} - int __init __weak early_irq_init(void) { - return arch_early_irq_init(); + printk(KERN_DEBUG "calling __weak early_irq_init()\n"); + + return 0; } asmlinkage void __init start_kernel(void) diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index f63c706..2ba0c84 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -18,6 +18,16 @@ #include "internals.h" +int __init __weak arch_early_irq_init(void) +{ + return 0; +} + +int __weak arch_init_chip_data(struct irq_desc *desc, int cpu) +{ + return 0; +} + /** * dynamic_irq_init - initialize a dynamically allocated irq * @irq: irq number to initialize diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 157c04c..c20db0b 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c @@ -86,11 +86,6 @@ void init_kstat_irqs(struct irq_desc *desc, int cpu, int nr) desc->kstat_irqs = (unsigned int *)ptr; } -int __weak arch_init_chip_data(struct irq_desc *desc, int cpu) -{ - return 0; -} - static void init_one_irq_desc(int irq, struct irq_desc *desc, int cpu) { memcpy(desc, &irq_desc_init, sizeof(struct irq_desc));