diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-12-29 00:16:45 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-29 00:19:55 +0100 |
commit | b2e2fe99628c4f944c3075258e536197b5a4f3f8 (patch) | |
tree | ad56d4853efc86c2c86e897b843a6438550d039c /init/main.c | |
parent | sparseirq: fix hang with !SPARSE_IRQ (diff) | |
download | linux-b2e2fe99628c4f944c3075258e536197b5a4f3f8.tar.xz linux-b2e2fe99628c4f944c3075258e536197b5a4f3f8.zip |
sparseirq: work around __weak alias bug
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: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init/main.c')
0 files changed, 0 insertions, 0 deletions