Re: x86: warning in unwind_get_return_address

From: Josh Poimboeuf
Date: Tue Dec 20 2016 - 18:36:54 EST


On Tue, Dec 20, 2016 at 11:35:23PM +0100, Andrey Konovalov wrote:
> On Tue, Dec 20, 2016 at 10:01 PM, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> > On Tue, Dec 20, 2016 at 03:43:27PM +0100, Andrey Konovalov wrote:
> >> Hi,
> >>
> >> I've got the following warning while running the syzkaller fuzzer:
> >>
> >> WARNING: unrecognized kernel stack return address ffffffffa0000001 at
> >> ffff88006377fa18 in a.out:4467
> >>
> >> By adding a BUG() to unwind_get_return_address() I was able to capture
> >> the stack trace (see below). Looks like unwind_get_return_address()
> >> gets called when KASAN tries to unwind the stack to save the stack
> >> trace.
> >>
> >> A reproducer is attached. CONFIG_KASAN=y is most likely needed for it to work.
> >
> > Hi Andrey,
> >
> > I've tried with your reproducer but it didn't recreate. Can you try
> > again with the following patch from the tip tree, instead of your BUG()
> > patch?
> >
> > http://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/patch/?id=8b5e99f02264130782a10ba5c0c759797fb064ee
> >
> > That will dump the stack data, which should give more clues about what
> > went wrong.
>
> Hi Josh,
>
> Sure, here it is:

Thanks. Looking at the stack trace, my guess is that an interrupt hit
while running in generated BPF code, and the unwinder got confused
because regs->ip points to the generated code. I may need to disable
that warning until we figure out a better solution.

Can you share your .config file?

--
Josh