From: Andrew Morton With CONFIG_FRAME_POINTER, profile=1: Intel(R) Xeon(TM) CPU 3.40GHz stepping 04 Booting processor 2/4 APIC 0x1 Initializing CPU#2 Calibrating delay using timer specific routine.. 6800.36 BogoMIPS (lpj=13600730) CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU2: Thermal monitoring enabled (TM1) Intel(R) Xeon(TM) CPU 3.40GHz stepping 04 APIC error on CPU2: 00(40) Unable to handle kernel NULL pointer dereference at 000000000000001b RIP: {profile_pc+37} PGD 0 Oops: 0000 [1] PREEMPT SMP last sysfs file: CPU 0 Modules linked in: Pid: 1, comm: idle Not tainted 2.6.17-rc4-mm2 #88 RIP: 0010:[] {profile_pc+37} RSP: 0000:ffffffff806a2f38 EFLAGS: 00010002 RAX: 0000000000000013 RBX: ffffffff804c4182 RCX: 0000000000000296 RDX: ffffffff804c4182 RSI: ffff81017fc7bcb8 RDI: ffffffff804c4182 RBP: ffffffff806a2f48 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000013 R12: ffff81017fc7bcb8 R13: ffff81017fc6c800 R14: 0000000000000002 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffffffff80719000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 000000000000001b CR3: 0000000000201000 CR4: 00000000000006e0 Process idle (pid: 1, threadinfo ffff81017fc7a000, task ffff81017fc5c7c0) Stack: ffff81017fc7bcb8 0000000000000001 ffffffff806a2f68 ffffffff8022c644 ffff81017fc7bcb8 ffffffff807668a0 ffffffff806a2f88 ffffffff802149c6 0000000000000296 ffff81017fc7bcb8 Call Trace: {profile_tick+70} {smp_local_timer_interrupt+22} {smp_apic_timer_interrupt+62} {apic_timer_interrupt+101} {_spin_unlock_irqrestore+17} {try_to_wake_up+1015} {wake_up_process+16} {migration_call+283} {notifier_call_chain+41} {blocking_notifier_call_chain+61} {cpu_up+174} {init+143} {_spin_unlock_irq+20} {schedule_tail+67} {child_rip+8} {init+0} {child_rip+0} Code: 48 8b 50 08 5b 48 89 d0 41 5c 5d c3 55 48 89 e5 53 56 83 3d RIP {profile_pc+37} RSP CR2: 000000000000001b <0>Kernel panic - not syncing: Aiee, killing interrupt handler! BUG: warning at kernel/panic.c:138/panic() Call Trace: {panic+557} {_spin_unlock_irqrestore+27} {__up_read+178} {blocking_notifier_call_chain+71} {do_exit+158} {_spin_unlock_irqrestore+27} {do_page_fault+1950} {_spin_unlock+43} {timer_interrupt+35} {_spin_unlock+43} {__do_IRQ+248} {error_exit+0} {_spin_unlock_irqrestore+17} {_spin_unlock_irqrestore+17} {_spin_unlock_irqrestore+17} {profile_pc+37} {profile_pc+25} {profile_tick+70} {smp_local_timer_interrupt+22} {smp_apic_timer_interrupt+62} {apic_timer_interrupt+101} {_spin_unlock_irqrestore+17} {try_to_wake_up+1015} {wake_up_process+16} {migration_call+283} {notifier_call_chain+41} {blocking_notifier_call_chain+61} {cpu_up+174} {init+143} {_spin_unlock_irq+20} {schedule_tail+67} {child_rip+8} {init+0} {child_rip+0} Cc: Andi Kleen Signed-off-by: Andrew Morton --- arch/x86_64/kernel/time.c | 4 ---- 1 files changed, 4 deletions(-) diff -puN arch/x86_64/kernel/time.c~revert-x86_64-mm-profile-pc-fp arch/x86_64/kernel/time.c --- 25/arch/x86_64/kernel/time.c~revert-x86_64-mm-profile-pc-fp 2006-05-20 03:07:18.000000000 -0700 +++ 25-akpm/arch/x86_64/kernel/time.c 2006-05-20 03:07:18.000000000 -0700 @@ -187,16 +187,12 @@ unsigned long profile_pc(struct pt_regs Better would be to write these functions in assembler again and check exactly. */ if (in_lock_functions(pc)) { -#ifdef CONFIG_FRAME_POINTER - return ((unsigned long *)(regs->rbp))[1]; -#else char *v = *(char **)regs->rsp; if ((v >= _stext && v <= _etext) || (v >= _sinittext && v <= _einittext) || (v >= (char *)MODULES_VADDR && v <= (char *)MODULES_END)) return (unsigned long)v; return ((unsigned long *)regs->rsp)[1]; -#endif } return pc; } _