Re: Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends'

From: Josh Poimboeuf
Date: Mon Feb 27 2017 - 19:49:59 EST


On Mon, Feb 27, 2017 at 03:23:28PM -0800, Guenter Roeck wrote:
> Hi Josh,
>
> On Mon, Feb 27, 2017 at 04:21:14PM -0600, Josh Poimboeuf wrote:
> > On Mon, Feb 27, 2017 at 12:59:23PM -0800, Guenter Roeck wrote:
> > > Hi,
> > >
> > > my qemu tests for mips64 in -next fail as follows.
> > >
> > > ...
> > > VFS: Mounted root (ext3 filesystem) on device 8:0.
> > > Freeing unused kernel memory: 304K
> > > This architecture does not have kernel memory protection.
> > > Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > >
> > > ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > >
> > > There is no symbol traceback, and I don't see any other (obvious) error
> > > message. bisect points to commit 'objtool: Improve detection of BUG()
> > > and other dead ends'; reverting that patch fixes the problem.
> > > Bisect log is attached below.
> > >
> > > The script used to run the test as well as the root file system is available
> > > at https://github.com/groeck/linux-build-test/tree/master/rootfs/mips64
> > >
> > > A complete log is available at
> > > http://kerneltests.org/builders/qemu-mips64-next/builds/592/steps/qemubuildcommand/logs/stdio
> >
> > Hi Guenter,
> >
> > This failure doesn't make much sense. Objtool (and the reported bad
> > patch) are x86-only and should have nothing to do with mips64. Would it
> > be possible for you to double check the error?
> >
> I already did; after all, bisect points to the patch, and reverting it fixes
> the problem. After looking into the patch, I concluded that the following
> might help.
>
> -#define unreachable() annotate_unreachable(); __builtin_unreachable()
> +#define unreachable() do { annotate_unreachable(); __builtin_unreachable(); } while (0)
>
> and it does ...
>

Doh, of course. Thanks for pointing it out, I'll fix it.

--
Josh