diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-18 12:13:57 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-18 12:13:57 -0400 |
commit | 76baeebf7df493703eeb4428eac015bdb7fabda6 (patch) | |
tree | 77a785e96d54b377aff29fce525c033d35d7b59d /arch/x86/pci | |
parent | 7715a1e887c5dedc9cf1e57a8f35df261c749b08 (diff) |
x86/PCI: make 32 bit NUMA node array int, not unsigned char
We use -1 to indicate no node affinity, so we need a signed type here or
all sorts of bad things happen, like crashes in dev_attr_show as
reported by Ingo:
[ 158.058140] warning: `dbus-daemon' uses 32-bit capabilities (legacy support in use)
[ 159.370562] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 159.372694] IP: [<ffffffff8143b722>] bitmap_scnprintf+0x72/0xd0
[ 159.372694] PGD 71d3e067 PUD 7052e067 PMD 0
[ 159.372694] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 159.372694] last sysfs file: /sys/devices/pci0000:00/0000:00:01.0/local_cpus
[ 159.372694] CPU 0
[ 159.372694] Pid: 7364, comm: irqbalance Not tainted 2.6.31-tip #8043 System Product Name
[ 159.372694] RIP: 0010:[<ffffffff8143b722>] [<ffffffff8143b722>] bitmap_scnprintf+0x72/0xd0
[ 159.372694] RSP: 0018:ffff8800712a1e38 EFLAGS: 00010246
[ 159.372694] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[ 159.372694] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffff880077dc5000
[ 159.372694] RBP: ffff8800712a1e68 R08: 0000000000000001 R09: 0000000000000001
[ 159.372694] R10: ffffffff8215c47c R11: 0000000000000000 R12: 0000000000000000
[ 159.372694] R13: 0000000000000000 R14: 0000000000000ffe R15: ffff880077dc5000
[ 159.372694] FS: 00007f5f578f76f0(0000) GS:ffff880007000000(0000) knlGS:0000000000000000
[ 159.372694] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 159.372694] CR2: 0000000000000000 CR3: 0000000071a77000 CR4: 00000000000006f0
[ 159.372694] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 159.372694] DR3: ffffffff835109dc DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 159.372694] Process irqbalance (pid: 7364, threadinfo ffff8800712a0000, task ffff880070773000)
[ 159.372694] Stack:
[ 159.372694] 2222222222222222 ffff880077dc5000 fffffffffffffffb ffff88007d366b40
[ 159.372694] <0> ffff8800712a1f48 ffff88007d3840a0 ffff8800712a1e88 ffffffff8146332b
[ 159.372694] <0> fffffffffffffff4 ffffffff82450718 ffff8800712a1ea8 ffffffff815a9a1f
[ 159.372694] Call Trace:
[ 159.372694] [<ffffffff8146332b>] local_cpus_show+0x3b/0x60
[ 159.372694] [<ffffffff815a9a1f>] dev_attr_show+0x2f/0x60
[ 159.372694] [<ffffffff8118ee6f>] sysfs_read_file+0xbf/0x1d0
[ 159.372694] [<ffffffff8112afe9>] vfs_read+0xc9/0x180
[ 159.372694] [<ffffffff8112c365>] sys_read+0x55/0x90
[ 159.372694] [<ffffffff810114f2>] system_call_fastpath+0x16/0x1b
[ 159.372694] Code: 41 b9 01 00 00 00 44 8d 46 03 49 63 fc 0f 49 d3 c1 f8 1f 4c 01 ff c1 e8 1a c1 fa 06 41 c1 e8 02 8d 0c 03 48 63 d2 83 e1 3f 29 c1 <49> 8b 44 d5 00 48 c7 c2 8c 37 16 82 48 d3 e8 89 f1 44 89 f6 49
[ 159.372694] RIP [<ffffffff8143b722>] bitmap_scnprintf+0x72/0xd0
[ 159.372694] RSP <ffff8800712a1e38>
[ 159.372694] CR2: 0000000000000000
[ 159.600828] ---[ end trace 35550c356e84e60c ]---
Reported-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r-- | arch/x86/pci/common.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 5db96d4304de..1331fcf26143 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c | |||
@@ -646,7 +646,7 @@ int get_mp_bus_to_node(int busnum) | |||
646 | 646 | ||
647 | #else /* CONFIG_X86_32 */ | 647 | #else /* CONFIG_X86_32 */ |
648 | 648 | ||
649 | static unsigned char mp_bus_to_node[BUS_NR] = { | 649 | static int mp_bus_to_node[BUS_NR] = { |
650 | [0 ... BUS_NR - 1] = -1 | 650 | [0 ... BUS_NR - 1] = -1 |
651 | }; | 651 | }; |
652 | 652 | ||