[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFwma5RgGj8iuSnOtTah_u_M7pnx02v4jxhJhKv17iPWDw@mail.gmail.com>
Date: Tue, 7 Nov 2017 09:03:48 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Fengguang Wu <fengguang.wu@...el.com>
Cc: William Breathitt Gray <vilhelm.gray@...il.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [isa_bus_shutdown] ALSA es1688_lib.c:113 ess_reset at 0x220: failed!!!
On Tue, Nov 7, 2017 at 2:25 AM, Fengguang Wu <fengguang.wu@...el.com> wrote:
>
> FYI this happens in v4.14-rc8 -- it's not necessarily a new bug.
Yeah, no it is not new.
It also likely doesn't matter (I suspect it happens if you try to
force-load crazy modules that don't exist, and ISA doesn't have proper
probing).
But the code disassembles to
0: 8b 50 7c mov 0x7c(%eax),%edx
3: 83 05 38 86 21 44 01 addl $0x1,X
a:* 8b 4a 0c mov 0xc(%edx),%ecx <-- trapping instruction
d: 83 15 3c 86 21 44 00 adcl $0x0,X+4
14: 85 c9 test %ecx,%ecx
and while I have no idea what that odd addl/adcl is (other than the
obvious "it's a 64-bit increment" - probably some random statistics
due to your config), it looks like the oops is due to
struct isa_driver *isa_driver = dev->platform_data;
if (isa_driver->shutdown)
with isa_driver being NULL (EDX: 00000000).
So dev->platform_data is NULL, but why that actually happens I don't
know. Some bad ISA device registration that _should_ have failed but
instead got into some half-alive state, I'm sure.
I'm not sure if anybody cares, but maybe adding a NULL check just to
make the 0day robot not report this is a good idea.
Linus
Powered by blists - more mailing lists