• Ingo Molnar's avatar
    sparseirq: work around __weak alias bug · b2e2fe99
    Ingo Molnar authored
    Impact: fix boot crash if the kernel is built with certain GCC versions
    
    GCC has a bug with __weak alias functions: if the functions are in
    the same compilation unit as their call site, GCC can decide to
    inline them - and thus rob the linker of the opportunity to override
    the weak alias with the real thing.
    
    This can lead to the boot crash reported by Kamalesh Babulal:
    
     ACPI: Core revision 20080926
     Setting APIC routing to flat
     BUG: unable to handle kernel NULL pointer dereference at
     0000000000000000
     IP: [<ffffffff8021f9a8>] add_pin_to_irq_cpu+0x14/0x74
     PGD 0
     Oops: 0000 [#1] SMP
     [...]
    
    So move the arch_init_chip_data() function from handle.c to manage.c.
    Reported-by: default avatarKamalesh Babulal <kamalesh@linux.vnet.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    b2e2fe99
handle.c 10.2 KB