* WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
@ 2017-04-20 11:06 Borislav Petkov
2017-04-20 13:30 ` Josh Poimboeuf
0 siblings, 1 reply; 4+ messages in thread
From: Borislav Petkov @ 2017-04-20 11:06 UTC (permalink / raw)
To: Josh Poimboeuf; +Cc: x86-ml, lkml
Hi,
the splat below started appearing on one of the boxes here with
rc7+tip/master from yesterday.
Ideas?
...
[ 3.019118] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 3.024994] mkdir (73) used greatest stack depth: 14352 bytes left
[ 3.065841] cat (84) used greatest stack depth: 14288 bytes left
[ 3.074305] all_generic_ide (85) used greatest stack depth: 14128 bytes left
[ 3.187019] WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
[ 3.187023] unwind stack type:0 next_sp: (null) mask:0x6 graph_idx:0
[ 3.187029] ffffc9000024fea8: 000055a6100e9b38 (0x55a6100e9b38)
[ 3.187031] ffffc9000024feb0: 000055a6100e9b35 (0x55a6100e9b35)
[ 3.187033] ffffc9000024feb8: 000055a6100e9f68 (0x55a6100e9f68)
[ 3.187035] ffffc9000024fec0: 000055a6100e9f50 (0x55a6100e9f50)
[ 3.187037] ffffc9000024fec8: 00007fffc4614d30 (0x7fffc4614d30)
[ 3.187038] ffffc9000024fed0: 000055a6100eaf50 (0x55a6100eaf50)
[ 3.187040] ffffc9000024fed8: 0000000000000000 ...
[ 3.187042] ffffc9000024fee0: 0000000000000100 (0x100)
[ 3.187043] ffffc9000024fee8: ffff8801187df488 (0xffff8801187df488)
[ 3.187045] ffffc9000024fef0: 00007ffffffff000 (0x7ffffffff000)
[ 3.187046] ffffc9000024fef8: 0000000000000000 ...
[ 3.187048] ffffc9000024ff10: ffffc9000024fe98 (0xffffc9000024fe98)
[ 3.187050] ffffc9000024ff18: 00007fffc4614d00 (0x7fffc4614d00)
[ 3.187052] ffffc9000024ff20: ffffffffffffff10 (0xffffffffffffff10)
[ 3.187058] ffffc9000024ff28: ffffffff811c6c1f (SyS_newlstat+0xf/0x10)
[ 3.187060] ffffc9000024ff30: 0000000000000010 (0x10)
[ 3.187062] ffffc9000024ff38: 0000000000000296 (0x296)
[ 3.187064] ffffc9000024ff40: ffffc9000024ff50 (0xffffc9000024ff50)
[ 3.187065] ffffc9000024ff48: 0000000000000018 (0x18)
[ 3.187072] ffffc9000024ff50: ffffffff816b2e6a (entry_SYSCALL_64_fastpath+0x18/0xa8)
[ 3.187073] ffffc9000024ff58: 00007fffc4614d40 (0x7fffc4614d40)
[ 3.187075] ffffc9000024ff60: 0000000000001000 (0x1000)
[ 3.187076] ffffc9000024ff68: 0000000000000000 ...
[ 3.187078] ffffc9000024ff78: 00007f9734fe9440 (0x7f9734fe9440)
[ 3.187080] ffffc9000024ff80: 000055a6100e9af0 (0x55a6100e9af0)
[ 3.187081] ffffc9000024ff88: 0000000000000246 (0x246)
[ 3.187083] ffffc9000024ff90: 0000000000000020 (0x20)
[ 3.187084] ffffc9000024ff98: 0000000000001010 (0x1010)
[ 3.187086] ffffc9000024ffa0: 0000000000000003 (0x3)
[ 3.187088] ffffc9000024ffa8: ffffffffffffffda (0xffffffffffffffda)
[ 3.187089] ffffc9000024ffb0: 00007f9734d2efe5 (0x7f9734d2efe5)
[ 3.187091] ffffc9000024ffb8: 00007fffc4614c70 (0x7fffc4614c70)
[ 3.187093] ffffc9000024ffc0: 00007fffc4614c70 (0x7fffc4614c70)
[ 3.187094] ffffc9000024ffc8: 000055a6100e9f50 (0x55a6100e9f50)
[ 3.187096] ffffc9000024ffd0: 0000000000000006 (0x6)
[ 3.187097] ffffc9000024ffd8: 00007f9734d2efe5 (0x7f9734d2efe5)
[ 3.187099] ffffc9000024ffe0: 0000000000000033 (0x33)
[ 3.187101] ffffc9000024ffe8: 0000000000000246 (0x246)
[ 3.187102] ffffc9000024fff0: 00007fffc4614c38 (0x7fffc4614c38)
[ 3.187104] ffffc9000024fff8: 000000000000002b (0x2b)
[ 3.333203] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 26
[ 3.338762] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
...
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
2017-04-20 11:06 WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30 Borislav Petkov
@ 2017-04-20 13:30 ` Josh Poimboeuf
2017-04-20 13:42 ` Josh Poimboeuf
0 siblings, 1 reply; 4+ messages in thread
From: Josh Poimboeuf @ 2017-04-20 13:30 UTC (permalink / raw)
To: Borislav Petkov; +Cc: x86-ml, lkml
On Thu, Apr 20, 2017 at 01:06:10PM +0200, Borislav Petkov wrote:
> Hi,
>
> the splat below started appearing on one of the boxes here with
> rc7+tip/master from yesterday.
>
> Ideas?
Thanks for reporting it. This is another false positive. It unwinded
from an interrupt which came in right after calling into C code, but
before it could set up the frame pointer. This needs another unwinder
check.
--
Josh
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
2017-04-20 13:30 ` Josh Poimboeuf
@ 2017-04-20 13:42 ` Josh Poimboeuf
2017-04-20 16:06 ` Borislav Petkov
0 siblings, 1 reply; 4+ messages in thread
From: Josh Poimboeuf @ 2017-04-20 13:42 UTC (permalink / raw)
To: Borislav Petkov; +Cc: x86-ml, lkml
On Thu, Apr 20, 2017 at 08:30:21AM -0500, Josh Poimboeuf wrote:
> On Thu, Apr 20, 2017 at 01:06:10PM +0200, Borislav Petkov wrote:
> > Hi,
> >
> > the splat below started appearing on one of the boxes here with
> > rc7+tip/master from yesterday.
> >
> > Ideas?
>
> Thanks for reporting it. This is another false positive. It unwinded
> from an interrupt which came in right after calling into C code, but
> before it could set up the frame pointer. This needs another unwinder
> check.
If it's recreatable, can you test with the following patch?
diff --git a/arch/x86/kernel/unwind_frame.c b/arch/x86/kernel/unwind_frame.c
index bda82df..abe36ff 100644
--- a/arch/x86/kernel/unwind_frame.c
+++ b/arch/x86/kernel/unwind_frame.c
@@ -91,16 +91,26 @@ static bool in_entry_code(unsigned long ip)
return false;
}
+static inline unsigned long *last_frame(struct unwind_state *state)
+{
+ return (unsigned long *)task_pt_regs(state->task) - 2;
+}
+
#ifdef CONFIG_X86_32
#define GCC_REALIGN_WORDS 3
#else
#define GCC_REALIGN_WORDS 1
#endif
+static inline unsigned long *last_aligned_frame(struct unwind_state *state)
+{
+ return last_frame(state) - GCC_REALIGN_WORDS;
+}
+
static bool is_last_task_frame(struct unwind_state *state)
{
- unsigned long *last_bp = (unsigned long *)task_pt_regs(state->task) - 2;
- unsigned long *aligned_bp = last_bp - GCC_REALIGN_WORDS;
+ unsigned long *last_bp = last_frame(state);
+ unsigned long *aligned_bp = last_aligned_frame(state);
/*
* We have to check for the last task frame at two different locations
@@ -277,10 +287,12 @@ bool unwind_next_frame(struct unwind_state *state)
/*
* Don't warn if the unwinder got lost due to an interrupt in entry
- * code before the stack was set up:
+ * code before the first frame pointer got set up:
*/
if (state->got_irq && in_entry_code(state->ip))
goto the_end;
+ if (state->regs && (unsigned long *)state->regs->sp >= last_aligned_frame(state))
+ goto the_end;
if (state->regs) {
printk_deferred_once(KERN_WARNING
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
2017-04-20 13:42 ` Josh Poimboeuf
@ 2017-04-20 16:06 ` Borislav Petkov
0 siblings, 0 replies; 4+ messages in thread
From: Borislav Petkov @ 2017-04-20 16:06 UTC (permalink / raw)
To: Josh Poimboeuf; +Cc: x86-ml, lkml
On Thu, Apr 20, 2017 at 08:42:52AM -0500, Josh Poimboeuf wrote:
> If it's recreatable, can you test with the following patch?
Yap, it is. /me builds a kernel...
>
> diff --git a/arch/x86/kernel/unwind_frame.c b/arch/x86/kernel/unwind_frame.c
> index bda82df..abe36ff 100644
> --- a/arch/x86/kernel/unwind_frame.c
> +++ b/arch/x86/kernel/unwind_frame.c
...
Looks good.
Reported-and-tested-by: Borislav Petkov <bp@suse.de>
Thanks.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-04-20 16:14 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-20 11:06 WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30 Borislav Petkov
2017-04-20 13:30 ` Josh Poimboeuf
2017-04-20 13:42 ` Josh Poimboeuf
2017-04-20 16:06 ` Borislav Petkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).