[BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

Subsystems: the rest · Maintainer: Linus Torvalds

10 messages, 5 authors, 2008-08-28 · open the first message on its own page

[BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Kamalesh Babulal <hidden>
Date: 2008-08-26 18:28:19

Hi Stephen,

Badness warning is seen, while booting up the next-20080825/26 kernels on 
the powerpc boxes

Badness at kernel/notifier.c:25
NIP: c000000000075bfc LR: c000000000075bf0 CTR: 0000000000000000
REGS: c000000000843a80 TRAP: 0700   Not tainted  (2.6.27-rc4-next-20080826-autokern1)
MSR: 8000000000021032 <ME,IR,DR>  CR: 44000082  XER: 00000000
TASK = c000000000762b40[0] 'swapper' THREAD: c000000000840000 CPU: 0
GPR00: c000000000075bf0 c000000000843d00 c000000000842148 0000000000000000 
GPR04: c000000000763d28 c000000000634ae0 0000000020000000 0000000000000000 
GPR08: 0000000000000000 ffffffffffffffff c0000000007f96f8 c0000000007f96f8 
GPR12: 3330303030303033 c0000000008c4300 0000000000000000 c000000000636720 
GPR16: 4000000002100000 c000000000634fb8 0000000000000000 0000000000246c00 
GPR20: 0000000002819298 c000000000719298 0000000002819508 c000000000719508 
GPR24: 0000000002c00000 c0000000006361d0 0000000000000000 0000000000000004 
GPR28: 0000000000010000 c000000000763d28 c0000000007d72b0 c000000000763d20 
NIP [c000000000075bfc] .notifier_chain_register+0x30/0x80
LR [c000000000075bf0] .notifier_chain_register+0x24/0x80
Call Trace:
[c000000000843d00] [c000000000075bf0] .notifier_chain_register+0x24/0x80 (unreliable)
[c000000000843d90] [c000000000037c04] .pSeries_reconfig_notifier_register+0x18/0x2c
[c000000000843e00] [c00000000003845c] .iommu_init_early_pSeries+0xe8/0x108
[c000000000843e70] [c0000000006f8954] .pSeries_init_early+0x68/0x80
[c000000000843ef0] [c0000000006ecd9c] .setup_system+0x204/0x398
[c000000000843f90] [c0000000000084fc] .start_here_common+0x2c/0xb0
Instruction dump:
7c0802a6 fba1ffe8 fbe1fff8 7c7f1b78 e8640000 7c9d2378 f8010010 f821ff71 
4bff77c5 60000000 2fa30000 409e0020 <0fe00000> 48000030 801d0010 812b0010 
console [udbg0] enabled
Partition configured for 8 cpus.
CPU maps initialized for 2 threads per core
Starting Linux PPC64 #1 SMP Tue Aug 26 12:55:19 EDT 2008
-----------------------------------------------------
ppc64_pft_size                = 0x19
physicalMemorySize            = 0x80000000
htab_hash_mask                = 0x3ffff
-----------------------------------------------------
Initializing cgroup subsys cpuset

169 more lines

diff --git a/kernel/notifier.c b/kernel/notifier.c
index 823be11..143fdd7 100644
--- a/kernel/notifier.c
+++ b/kernel/notifier.c
@@ -21,6 +21,10 @@ BLOCKING_NOTIFIER_HEAD(reboot_notifier_list);
 static int notifier_chain_register(struct notifier_block **nl,
                struct notifier_block *n)
 {
+       if (!kernel_text_address((unsigned long)n->notifier_call)) {
+               WARN(1, "Invalid notifier registered!");
+               return 0;
+       }
        while ((*nl) != NULL) {
                if (n->priority > (*nl)->priority)
                        break;
<snip>


-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Arjan van de Ven <hidden>
Date: 2008-08-26 20:23:00

Kamalesh Babulal wrote:
Hi Stephen,

Badness warning is seen, while booting up the next-20080825/26 kernels on the powerpc boxes
this is fixed in the patch I sent to Ingo earlier today
(attached again for reference)

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Kamalesh Babulal <hidden>
Date: 2008-08-27 11:12:42

Arjan van de Ven wrote:
quoted hunk
Kamalesh Babulal wrote:
quoted
Hi Stephen,

Badness warning is seen, while booting up the next-20080825/26 kernels on 
the powerpc boxes
this is fixed in the patch I sent to Ingo earlier today
(attached again for reference)


------------------------------------------------------------------------

From eafa461d187448998b1f66c9134e66b125db9531 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <redacted>
Date: Tue, 26 Aug 2008 09:01:06 -0700
Subject: [PATCH] debug: add notifier chain debugging

during some development we suspected a case where we left something
in a notifier chain that was from a module that was unloaded already...
and that sort of thing is rather hard to track down.

This patch adds a very simple sanity check (which isn't all that
expensive) to make sure the notifier we're about to call is
actually from either the kernel itself of from a still-loaded
module, avoiding a hard-to-chase-down crash.

Signed-off-by: Arjan van de Ven <redacted>
Acked-by: Tony Luck <tony.luck@intel.com>
---
 include/linux/kernel.h |    3 +++
 kernel/extable.c       |   16 ++++++++++++++++
 kernel/notifier.c      |    6 ++++++
 lib/vsprintf.c         |    2 +-
 4 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 2651f80..4e1366b 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h

64 more quoted lines

Thanks for reference of the patch, After replacing the patch with the latest 
one above on the powerpc, the warning still remains

Badness at kernel/notifier.c:86
NIP: c000000000081470 LR: c000000000081494 CTR: c00000000005a2d0
REGS: c0000021ce0bfaf0 TRAP: 0700   Not tainted  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000029032 <EE,ME,IR,DR>  CR: 24008042  XER: 00000005
TASK = c0000015de080000[1] 'swapper' THREAD: c0000021ce0bc000 CPU: 0
GPR00: c000000000081494 c0000021ce0bfd70 c00000000081e940 c000000000749c38 
GPR04: 0000000000000003 0000000000000001 ffffffffffffffff c0000021ce0bfe90 
GPR08: ffffffffffffffff ffffffffffffffff c0000000004fd9f0 c0000000004fd9f0 
GPR12: 0000000024000042 c00000000089c300 0000000002307ef0 c0000000006332a0 
GPR16: c000000000631f28 c000000000633388 00000000018bf8b0 0000000002700000 
GPR20: c00000000070b07c c000000000707ef0 c000000000708160 c000000000631c58 
GPR24: 0000000000000003 0000000000000001 c0000021ce0bfe90 0000000000000000 
GPR28: ffffffffffffffff c000000000749c20 c0000000007bf338 c000000000749c38 
NIP [c000000000081470] .notifier_call_chain+0x70/0x140
LR [c000000000081494] .notifier_call_chain+0x94/0x140
Call Trace:
[c0000021ce0bfd70] [c000000000081494] .notifier_call_chain+0x94/0x140 (unreliable)
[c0000021ce0bfe20] [c0000000004fe3fc] .cpu_up+0x10c/0x200
[c0000021ce0bfee0] [c0000000006cdcc0] .kernel_init+0x1b0/0x440
[c0000021ce0bff90] [c0000000000299cc] .kernel_thread+0x4c/0x68
Instruction dump:
e8630000 2fa30000 419e00f0 2fa60000 419e00e8 2e270000 7c7f1b78 3b600000 
48000028 60000000 60000000 60000000 <0fe00000> 2fbd0000 2f3c0000 7fbfeb78 


-- 
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Arjan van de Ven <hidden>
Date: 2008-08-27 13:50:55

Kamalesh Babulal wrote:
Thanks for reference of the patch, After replacing the patch with the latest one above on the powerpc, the warning still remains

Badness at kernel/notifier.c:86
sadly you have something going on that doesn't list the modules loaded etc...

is this during boot or way later?
(because if it's the later, you might be hitting a legitimate bug ;-)
NIP: c000000000081470 LR: c000000000081494 CTR: c00000000005a2d0
REGS: c0000021ce0bfaf0 TRAP: 0700   Not tainted  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000029032 <EE,ME,IR,DR>  CR: 24008042  XER: 00000005
TASK = c0000015de080000[1] 'swapper' THREAD: c0000021ce0bc000 CPU: 0
GPR00: c000000000081494 c0000021ce0bfd70 c00000000081e940 c000000000749c38 GPR04: 0000000000000003 0000000000000001 ffffffffffffffff c0000021ce0bfe90 GPR08: ffffffffffffffff ffffffffffffffff c0000000004fd9f0 c0000000004fd9f0 GPR12: 0000000024000042 c00000000089c300 0000000002307ef0 c0000000006332a0 GPR16: c000000000631f28 c000000000633388 00000000018bf8b0 0000000002700000 GPR20: c00000000070b07c c000000000707ef0 c000000000708160 c000000000631c58 GPR24: 0000000000000003 0000000000000001 c0000021ce0bfe90 0000000000000000 GPR28: ffffffffffffffff c000000000749c20 c0000000007bf338 c000000000749c38 NIP [c000000000081470] .notifier_call_chain+0x70/0x140
LR [c000000000081494] .notifier_call_chain+0x94/0x140
Call Trace:
[c0000021ce0bfd70] [c000000000081494] .notifier_call_chain+0x94/0x140 (unreliable)
[c0000021ce0bfe20] [c0000000004fe3fc] .cpu_up+0x10c/0x200
[c0000021ce0bfee0] [c0000000006cdcc0] .kernel_init+0x1b0/0x440
[c0000021ce0bff90] [c0000000000299cc] .kernel_thread+0x4c/0x68
Instruction dump:
e8630000 2fa30000 419e00f0 2fa60000 419e00e8 2e270000 7c7f1b78 3b600000 48000028 60000000 60000000 60000000 <0fe00000> 2fbd0000 2f3c0000 7fbfeb78

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Stephen Rothwell <hidden>
Date: 2008-08-27 14:33:28

Hi Arjan,

On Wed, 27 Aug 2008 06:48:06 -0700 Arjan van de Ven [off-list ref] wrote:
Kamalesh Babulal wrote:
quoted
Thanks for reference of the patch, After replacing the patch with the latest 
one above on the powerpc, the warning still remains

Badness at kernel/notifier.c:86
sadly you have something going on that doesn't list the modules loaded etc...

is this during boot or way later?
(because if it's the later, you might be hitting a legitimate bug ;-)
The original reported trace was during setup_system which is very early in
the boot.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Stephen Rothwell <hidden>
Date: 2008-08-27 14:38:39

Hi Arjan,

On Thu, 28 Aug 2008 00:33:08 +1000 Stephen Rothwell [off-list ref] wrote:
The original reported trace was during setup_system which is very early in
the boot.
But, of course, that version didn't have the necessary extra dereference
of the function address ...

And the later debug patch did not check the address at register time,
only at notify time.

The later trace also looks to be early in the boot.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Kamalesh Babulal <hidden>
Date: 2008-08-27 17:52:39

Arjan van de Ven wrote:
Kamalesh Babulal wrote:
quoted
Thanks for reference of the patch, After replacing the patch with the latest 
one above on the powerpc, the warning still remains

Badness at kernel/notifier.c:86
sadly you have something going on that doesn't list the modules loaded etc...

is this during boot or way later?
(because if it's the later, you might be hitting a legitimate bug ;-)
quoted
NIP: c000000000081470 LR: c000000000081494 CTR: c00000000005a2d0
REGS: c0000021ce0bfaf0 TRAP: 0700   Not tainted  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000029032 <EE,ME,IR,DR>  CR: 24008042  XER: 00000005
TASK = c0000015de080000[1] 'swapper' THREAD: c0000021ce0bc000 CPU: 0
GPR00: c000000000081494 c0000021ce0bfd70 c00000000081e940 c000000000749c38 
GPR04: 0000000000000003 0000000000000001 ffffffffffffffff c0000021ce0bfe90 
GPR08: ffffffffffffffff ffffffffffffffff c0000000004fd9f0 c0000000004fd9f0 
GPR12: 0000000024000042 c00000000089c300 0000000002307ef0 c0000000006332a0 
GPR16: c000000000631f28 c000000000633388 00000000018bf8b0 0000000002700000 
GPR20: c00000000070b07c c000000000707ef0 c000000000708160 c000000000631c58 
GPR24: 0000000000000003 0000000000000001 c0000021ce0bfe90 0000000000000000 
GPR28: ffffffffffffffff c000000000749c20 c0000000007bf338 c000000000749c38 
NIP [c000000000081470] .notifier_call_chain+0x70/0x140
LR [c000000000081494] .notifier_call_chain+0x94/0x140
Call Trace:
[c0000021ce0bfd70] [c000000000081494] .notifier_call_chain+0x94/0x140 (unreliable)
[c0000021ce0bfe20] [c0000000004fe3fc] .cpu_up+0x10c/0x200
[c0000021ce0bfee0] [c0000000006cdcc0] .kernel_init+0x1b0/0x440
[c0000021ce0bff90] [c0000000000299cc] .kernel_thread+0x4c/0x68
Instruction dump:
e8630000 2fa30000 419e00f0 2fa60000 419e00e8 2e270000 7c7f1b78 3b600000 
48000028 60000000 60000000 60000000 <0fe00000> 2fbd0000 2f3c0000 7fbfeb78 
This is during the bootup
Welcome to yaboot version 1.3.12
Enter "help" to get some basic usage information
boot: autotest
Please wait, loading kernel...
   Elf64 kernel loaded...
Loading ramdisk...
ramdisk loaded at 02700000, size: 846 Kbytes
OF stdout device is: /vdevice/vty@30000000
Hypertas detected, assuming LPAR !
command line: root=/dev/sda6 console=hvc0 IDENT=1219851195 
memory layout at init:
  alloc_bottom : 00000000027d4000
  alloc_top    : 0000000008000000
  alloc_top_hi : 0000000100000000
  rmo_top      : 0000000008000000
  ram_top      : 0000000100000000
Looking for displays
instantiating rtas at 0x00000000076a1000 ... done
boot cpu hw idx 0000000000000000
starting cpu hw idx 0000000000000002... done
copying OF device tree ...
Building dt strings...
Building dt structure...
Device tree strings 0x00000000028d5000 -> 0x00000000028d637a
Device tree struct  0x00000000028d7000 -> 0x00000000028df000
Calling quiesce ...
returning from prom_init
Using pSeries machine description
Found initrd at 0xc000000002700000:0xc0000000027d3800
console [udbg0] enabled
Partition configured for 4 cpus.
CPU maps initialized for 2 threads per core
Starting Linux PPC64 #1 SMP Wed Aug 27 11:25:24 EDT 2008
-----------------------------------------------------
ppc64_pft_size                = 0x1a
physicalMemorySize            = 0x100000000
htab_hash_mask                = 0x7ffff
-----------------------------------------------------
Initializing cgroup subsys cpuset

105 more lines

--- Exception: 901 at .raw_local_irq_restore+0x3c/0x40
    LR = .cpu_idle+0x12c/0x200
[c0000000fe083e50] [c000000000012fa8] .cpu_idle+0x120/0x200 (unreliable)
[c0000000fe083ed0] [c000000000509e34] .start_secondary+0x364/0x3a0
[c0000000fe083f90] [c000000000008364] .start_secondary_prolog+0xc/0x10
Instruction dump:
fbe1fff8 3b3a00a8 f8010010 f821ff51 48487a05 60000000 eb7a00a8 7fbbc800 
419e012c 3bfbffc0 38a00002 38c00000 <e89f0028> 7fe3fb78 ebbf0020 4bfff925 
Kernel panic - not syncing: Fatal exception in interrupt
Call Trace:
[c00000000fff7810] [c0000000000114b0] .show_stack+0x6c/0x194 (unreliable)
[c00000000fff78c0] [c000000000058994] .panic+0x74/0x1cc
[c00000000fff7950] [c000000000024a84] .die+0x248/0x28c
[c00000000fff7a00] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff7a80] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .run_hrtimer_pending+0x4c/0x1c0
    LR = .run_hrtimer_pending+0x30/0x1c0
[c00000000fff7e20] [c00000000006614c] .run_timer_softirq+0x3c/0x288
[c00000000fff7ef0] [c00000000005f9b4] .__do_softirq+0xac/0x16c
[c00000000fff7f90] [c0000000000267e8] .call_do_softirq+0x14/0x24
[c0000000fe0839b0] [c00000000000cd58] .do_softirq+0x94/0x104
[c0000000fe083a50] [c00000000005fb84] .irq_exit+0x70/0xcc
[c0000000fe083ad0] [c00000000002352c] .timer_interrupt+0xe0/0x10c
[c0000000fe083b60] [c000000000003700] decrementer_common+0x100/0x180
--- Exception: 901 at .raw_local_irq_restore+0x3c/0x40
    LR = .cpu_idle+0x12c/0x200
[c0000000fe083e50] [c000000000012fa8] .cpu_idle+0x120/0x200 (unreliable)
[c0000000fe083ed0] [c000000000509e34] .start_secondary+0x364/0x3a0
[c0000000fe083f90] [c000000000008364] .start_secondary_prolog+0xc/0x10
------------[ cut here ]------------
Badness at kernel/smp.c:290
NIP: c00000000008595c LR: c000000000085b3c CTR: 0000000000000000
REGS: c00000000fff7410 TRAP: 0700   Tainted: G      D W  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000021032 <ME,IR,DR>  CR: 22000024  XER: 00000000
TASK = c0000000fe061160[0] 'swapper' THREAD: c0000000fe080000 CPU: 1
f2e10] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff2e90] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .kmem_cache_alloc+0x44/0xdc
    LR = .smp_call_function_single+0xbc/0x118
[c00000000fff3180] [c000000000085960] .smp_call_function_mask+0x60/0x208 (unreliable)
[c00000000fff3220] [c00000000008587c] .smp_call_function_single+0xbc/0x118
[c00000000fff3310] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff3440] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff34c0] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff3540] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff35d0] [c000000000024a84] .die+0x248/0x28c
[c00000000fff3680] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff3700] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .kmem_cache_alloc+0x44/0xdc
    LR = .smp_call_function_single+0xbc/0x118
[c00000000fff39f0] [c000000000085960] .smp_call_function_mask+0x60/0x208 (unreliable)
[c00000000fff3a90] [c00000000008587c] .smp_call_function_single+0xbc/0x118
[c00000000fff3b80] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff3cb0] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff3d30] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff3db0] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff3e40] [c000000000024a84] .die+0x248/0x28c
[c00000000fff3ef0] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff3f70] [c000000000005218] handle_page_fault+0x3c/0x5c
------------[ cut here ]------------
Badness at kernel/smp.c:290
NIP: c00000000008595c LR: c000000000085b3c CTR: 0000000000000000
REGS: c00000000fff2820 TRAP: 0700   Tainted: G      D W  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000021032 <ME,IR,DR>  CR: 22000024  XER: 00000000
TASK = c0000000fe061160[0] 'swapper' THREAD: c0000000fe080000 CPU: 1
GPR00: 0000000000000001 c00000000fff2aa0 c000000000873748 0000000000000003 
GPR04: 0000000000000000 c000000000828930 0000000000000000 0000000000000000 
GPR08: c00000000fff4260 0000000000000000 0000000000000001 0000000000000001 
GPR12: 0000000022000082 c0000000008f8500 0000000000000000 000000000796a428 
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000003 
GPR24: 0000000000000001 000000000000000b 0000000000000000 c000000000828930 
GPR28: 0000000000000000 c0000000006626b0 c00000000080d0e8 0000000000000000 
NIP [c00000000008595c] .smp_call_function_mask+0x5c/0x208
LR [c000000000085b3c] .smp_call_function+0x34/0x48
Call Trace:
[c00000000fff2aa0] [c000000000059cdc] .try_acquire_console_sem+0x1c/0x5c (unreliable)
[c00000000fff2bd0] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff2c50] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff2cd0] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff2d60] [c000000000024a84] .die+0x248/0x28c
[c00000000fff2e10] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff2e90] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .kmem_cache_alloc+0x44/0xdc
    LR = .smp_call_function_single+0xbc/0x118
[c00000000fff3180] [c000000000085960] .smp_call_function_mask+0x60/0x208 (unreliable)
[c00000000fff3220] [c00000000008587c] .smp_call_function_single+0xbc/0x118
[c00000000fff3310] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff3440] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff34c0] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff3540] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff35d0] [c000000000024a84] .die+0x248/0x28c
[c00000000fff3680] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff3700] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .kmem_cache_alloc+0x44/0xdc
    LR = .smp_call_function_single+0xbc/0x118
[c00000000fff39f0] [c000000000085960] .smp_call_function_mask+0x60/0x208 (unreliable)
[c00000000fff3a90] [c00000000008587c] .smp_call_function_single+0xbc/0x118
[c00000000fff3b80] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff3cb0] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff3d30] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff3db0] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff3e40] [c000000000024a84] .die+0x248/0x28c
[c00000000fff3ef0] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff3f70] [c000000000005218] handle_page_fault+0x3c/0x5c
Instruction dump:
7cfc3b78 f821fed1 60000000 60000000 e8010000 f8610160 f8810168 f82100e8 
f80100e0 880d01da 21200000 7c090114 <0b000000> a14d000a e93e8040 38a100c0 
------------[ cut here ]------------
Badness at kernel/smp.c:216
NIP: c00000000008580c LR: c000000000085a0c CTR: 0000000000000000
REGS: c00000000fff2730 TRAP: 0700   Tainted: G      D W  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000021032 <ME,IR,DR>  CR: 42000028  XER: 00000000
TASK = c0000000fe061160[0] 'swapper' THREAD: c0000000fe080000 CPU: 1
GPR00: 0000000000000001 c00000000fff29b0 c000000000873748 0000000000000000 
GPR04: c000000000828930 0000000000000000 0000000000000000 0000000000000000 
GPR08: c00000000fff2c00 0000000000000001 0000000000000040 0000000000000000 
GPR12: 0000000022000082 c0000000008f8500 0000000000000000 000000000796a428 
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000003 
GPR24: 0000000000000001 000000000000000b 0000000000000000 c000000000828930 
GPR28: 0000000000000000 c000000000828930 c00000000080d0e8 0000000000000000 
NIP [c00000000008580c] .smp_call_function_single+0x4c/0x118
LR [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
Call Trace:
[c00000000fff29b0] [c000000000934368] printk_buf+0x0/0x400 (unreliable)
[c00000000fff2aa0] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff2bd0] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff2c50] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff2cd0] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff2d60] [c000000000024a84] .die+0x248/0x28c
[c00000000fff2e10] [c00000000002c7b0] .bad_page_fault+0xb8/0xd4
[c00000000fff2e90] [c000000000005218] handle_page_fault+0x3c/0x5c
--- Exception: 300 at .kmem_cache_alloc+0x44/0xdc
    LR = .smp_call_function_single+0xbc/0x118
[c00000000fff3180] [c000000000085960] .smp_call_function_mask+0x60/0x208 (unreliable)
[c00000000fff3220] [c00000000008587c] .smp_call_function_single+0xbc/0x118
[c00000000fff3310] [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
[c00000000fff3440] [c000000000085b3c] .smp_call_function+0x34/0x48
[c00000000fff34c0] [c000000000028848] .smp_send_stop+0x24/0x3c
[c00000000fff3540] [c0000000000589b4] .panic+0x94/0x1cc
[c00000000fff35d0] [c000000000024a84] .die+0x248000000000000001 0000000000000040 0000000000000000 
GPR12: 0000000022000082 c0000000008f8500 0000000000000000 000000000796a428 
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000003 
GPR24: 0000000000000001 000000000000000b 0000000000000000 c000000000828930 
GPR28: 0000000000000000 c000000000828930 c00000000080d0e8 0000000000000000 
NIP [c00000000008580c] .smp_call_function_single+0x4c/0x118
LR [c000000000085a0c] .smp_call_function_mask+0x10c/0x208
Call Trace:
Instruction dump:
7c9d2378 f8010010 f821ff11 7cbc2b78 e8010000 f82100b8 f80100b0 60000000 
a12d000a 880d01da 21600000 7c0b0114 <0b000000> 7f834800 409e0050 38000000 
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc0000000000e35b8
Oops: Kernel access of bad area, sig: 11 [#27]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in:
NIP: c0000000000e35b8 LR: c00000000008587c CTR: 0000000000000000
REGS: c00000000ffe99e0 TRAP: 0300   Tainted: G      D W  (2.6.27-rc4-next-20080826-autotest)
MSR: 8000000000001032 <ME,IR,DR>  CR: 42000022  XER: 00000000
DAR: 0000000000000000, DSISR: 0000000040000000
TASK = c0000000fe061160[0] 'swapper' THREAD: c0000000fe080000 CPU: 1
GPR00: c00000000008587c c00000000ffe9c60 c000000000873748 c0000000008ec630 
GPR04: 0000000000000020 ffffffffffffffff c00000000008587c 0000000000000000 
GPR08: c00000000ffe9f50 0000000000000000 0000000000000040 0000000000000000 
GPR12: 0000000022000082 c0000000008f8500 0000000000000000 000000000796a428 
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000003 
GPR24: 0000000000000001 000000000000000b 0000000000000000 0000000000000020 
GPR28: 0000000000000000 0000000000000000 c00000000080d0e8 0000000000000000 
NIP [c0000000000e35b8] .kmem_cache_alloc+0x44/0xdc
LR [c00000000008587c] .smp_call_function_single+0xbc/0x118
Call Trace:
Instruction dump:

14 more lines

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: David Woodhouse <dwmw2@infradead.org>
Date: 2008-08-28 14:23:46

On Thu, 2008-08-28 at 00:38 +1000, Stephen Rothwell wrote:
Hi Arjan,

On Thu, 28 Aug 2008 00:33:08 +1000 Stephen Rothwell [off-list ref] wrote:
quoted
The original reported trace was during setup_system which is very early in
the boot.
But, of course, that version didn't have the necessary extra dereference
of the function address ...

And the later debug patch did not check the address at register time,
only at notify time.

The later trace also looks to be early in the boot.
It's isa_bridge_notify(), which is neither within _[se]text nor
_[se]inittext, so the core_kernel_text() function disavows it.

Where are __devinit functions supposed to end up?

 $ egrep _[es]init\|_[es]text\|isa_bridge_notify System.map 
c000000000000000 T _stext
c00000000045d000 T _etext
c000000000463ca8 t .isa_bridge_notify
c00000000063a000 T _sinittext
c00000000067c3bc T _einittext
c00000000071fd80 d isa_bridge_notify

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: David Woodhouse <dwmw2@infradead.org>
Date: 2008-08-28 14:58:33

On Thu, 2008-08-28 at 15:23 +0100, David Woodhouse wrote:
On Thu, 2008-08-28 at 00:38 +1000, Stephen Rothwell wrote:
quoted
Hi Arjan,

On Thu, 28 Aug 2008 00:33:08 +1000 Stephen Rothwell [off-list ref] wrote:
quoted
The original reported trace was during setup_system which is very early in
the boot.
But, of course, that version didn't have the necessary extra dereference
of the function address ...

And the later debug patch did not check the address at register time,
only at notify time.

The later trace also looks to be early in the boot.
It's isa_bridge_notify(), which is neither within _[se]text nor
_[se]inittext, so the core_kernel_text() function disavows it.

Where are __devinit functions supposed to end up?
The TEXT_TEXT macro defined in <asm-generic/vmlinux.lds.h> should get
this right... but we don't use it. Is there any particular reason for
that, or should we....

Signed-off-by: David Woodhouse <redacted>
--- linux-2.6.26.ppc64/arch/powerpc/kernel/vmlinux.lds.S~	2008-07-13 22:51:29.000000000 +0100
+++ linux-2.6.26.ppc64/arch/powerpc/kernel/vmlinux.lds.S	2008-08-28 15:39:14.000000000 +0100
@@ -35,10 +35,11 @@ SECTIONS
 		ALIGN_FUNCTION();
 		*(.text.head)
 		_text = .;
-		*(.text .fixup .text.init.refok .exit.text.refok)
+		TEXT_TEXT
 		SCHED_TEXT
 		LOCK_TEXT
 		KPROBES_TEXT
+		*(.fixup)
 
 #ifdef CONFIG_PPC32
 		*(.got1)
-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse@intel.com                              Intel Corporation

Re: [BUG] linux-next: Tree for August 26 - Badness at kernel/notifier.c:25

From: Milton Miller <hidden>
Date: 2008-08-28 17:19:20

David Woodhouse dwmw2 at infradead.org
Fri Aug 29 00:55:07 EST 2008
On Thu, 2008-08-28 at 15:23 +0100, David Woodhouse wrote:
quoted
On Thu, 2008-08-28 at 00:38 +1000, Stephen Rothwell wrote:
quoted
Hi Arjan,

On Thu, 28 Aug 2008 00:33:08 +1000 Stephen Rothwell <sfr at canb.auug.org.au> wrote:
quoted
The original reported trace was during setup_system which is very early in
the boot.
But, of course, that version didn't have the necessary extra dereference
of the function address ...

And the later debug patch did not check the address at register time,
only at notify time.

The later trace also looks to be early in the boot.
It's isa_bridge_notify(), which is neither within _[se]text nor
_[se]inittext, so the core_kernel_text() function disavows it.

Where are __devinit functions supposed to end up?
The TEXT_TEXT macro defined in <asm-generic/vmlinux.lds.h> should get
this right... but we don't use it. Is there any particular reason for
that, or should we....
gitk -- arch/powerpc/kernel/vmlinux.S

	e95c91821fa56b489d7beb74103a419466c5ec10
	[POWERPC] Fix link errors for allyesconfig
    
    An allyesconfig build creates a .text section that is so big that the
    .text.init.refok and .fixup sections are too far away for the relocations
    to be fixed up correctly. This patch fixes that by linking all the
    relevent text sections for each file together.
    
    Suggested by Paul Mackerras.
    
    Signed-off-by: Stephen Rothwell [off-list ref]
    Signed-off-by: Paul Mackerras [off-list ref]


Although I think its really fac23fe4be23259a8eaa9bad822f5b14dd07d15c 
powerpc: Introduce infrastructure for feature sections with alternatives
that causes the problems.

If the problem is only reaching the branch-out-of-fixup-section, then
we could create a macro that caculates the branch as if it were already
at the destination address (using something like

	b (target-fixup_start)-(current-alternative_start)

and then removing the code that determines the branch target goes beyond
the feature section.

Just a concept, have't tried it yet and don't know if there are other
problems with .text.init.refok.

Or we fix our defintion and put a comment next to TEXT_TEXT that we
don't use it for future editors.
quoted hunk
Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
--- linux-2.6.26.ppc64/arch/powerpc/kernel/vmlinux.lds.S~	2008-07-13 22:51:29.000000000 +0100
+++ linux-2.6.26.ppc64/arch/powerpc/kernel/vmlinux.lds.S	2008-08-28 15:39:14.000000000 +0100
@@ -35,10 +35,11 @@ SECTIONS
 		ALIGN_FUNCTION();
 		*(.text.head)
 		_text = .;
-		*(.text .fixup .text.init.refok .exit.text.refok)
+		TEXT_TEXT
 		SCHED_TEXT
 		LOCK_TEXT
 		KPROBES_TEXT
+		*(.fixup)
 
 #ifdef CONFIG_PPC32
 		*(.got1)
-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help