Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1364217 > unrolled thread

Re: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153!

Started byPetr Mladek <pmladek@suse.com>
First post2016-03-24 15:50 +0100
Last post2016-03-25 17:20 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [ppdev] e7223f1860:  kernel BUG at drivers/base/driver.c:153! Petr Mladek <pmladek@suse.com> - 2016-03-24 15:50 +0100
    Re: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153! Linus Torvalds <torvalds@linux-foundation.org> - 2016-03-25 17:20 +0100

#1364217 — Re: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153!

FromPetr Mladek <pmladek@suse.com>
Date2016-03-24 15:50 +0100
SubjectRe: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153!
Message-ID<rgeKe-3Y1-11@gated-at.bofh.it>
On Mon 2016-02-15 17:20:01, Sudip Mukherjee wrote:
> On Mon, Feb 15, 2016 at 04:20:45PM +0800, kernel test robot wrote:
> > Greetings,
> > 
> > 0day kernel testing robot got the below dmesg and the first bad commit is
> > 
> > https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git char-misc-testing
> > 
> > commit e7223f18603374d235d8bb0398532323e5f318b9
> > Author:     Sudip Mukherjee <sudipm.mukherjee@gmail.com>
> > AuthorDate: Fri Feb 12 18:33:45 2016 +0530
> > Commit:     Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > CommitDate: Sun Feb 14 17:43:50 2016 -0800
> > 
> >     ppdev: use new parport device model
> >     
> >     Modify ppdev driver to use the new parallel port device model.
> >     
> >     Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
> >     Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> Can you please send the .config file so that i can reproduce in my local
> system and test?
> 
> Ying Huang also sent a similar report after posting the patches. I tried
> his .config and your scripts to reproduce this but was not able to.
> 
> Anyway, this error is not related to this patch, this patch has just
> uncovered this error in parport. And will only happen if ppdev tries to
> register with parport before parport bus is registered.

The problem has been propagated to the Linus' tree for 4.6. I get

[    1.281235] kernel BUG at drivers/base/driver.c:153!
[    1.281924] invalid opcode: 0000 [#1] SMP 
[    1.282560] Modules linked in:
[    1.283095] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.5.0-4-default+ #2448
[    1.284015] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
[    1.284553] task: ffff88013a6a8000 ti: ffff88013a6ac000 task.ti: ffff88013a6ac000
[    1.284553] RIP: 0010:[<ffffffff81562a86>]  [<ffffffff81562a86>] driver_register+0xd6/0xe0
[    1.284553] RSP: 0000:ffff88013a6afdc0  EFLAGS: 00010246
[    1.284553] RAX: ffffffff81d1f68b RBX: ffffffff81f2af08 RCX: 0000000000000000
[    1.284553] RDX: ffffffff81d1f68b RSI: ffffffff81f2e5a0 RDI: ffffffff81f2af08
[    1.284553] RBP: ffff88013a6afdd0 R08: 0000000000000000 R09: 0000000000000000
[    1.284553] R10: 0000000000000001 R11: 00000000000013bd R12: ffffffff81f2aee0
[    1.284553] R13: 0000000000000000 R14: ffffffff8201f353 R15: ffff88013fc17558
[    1.284553] FS:  0000000000000000(0000) GS:ffff88013fc80000(0000) knlGS:0000000000000000
[    1.284553] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    1.284553] CR2: 0000000000000000 CR3: 0000000001e06000 CR4: 00000000000006e0
[    1.284553] Stack:
[    1.284553]  0000000000000000 ffffffff81f2aee0 ffff88013a6afdf8 ffffffff81554c6a
[    1.284553]  ffffffff81d1f68b 00000000b9226c80 ffff8800b91bfce0 ffff88013a6afe10
[    1.284553]  ffffffff8201f3d3 ffffffff81e0b050 ffff88013a6afe80 ffffffff810003b8
[    1.284553] Call Trace:
[    1.284553]  [<ffffffff81554c6a>] __parport_register_driver+0x5a/0x150
[    1.284553]  [<ffffffff8201f3d3>] ppdev_init+0x80/0xd1
[    1.284553]  [<ffffffff810003b8>] do_one_initcall+0x88/0x1c0
[    1.284553]  [<ffffffff8108f200>] ? parse_args+0x210/0x3b0
[    1.284553]  [<ffffffff81fd22e1>] kernel_init_freeable+0x1f9/0x289
[    1.284553]  [<ffffffff81fd19b2>] ? set_debug_rodata+0x12/0x12
[    1.284553]  [<ffffffff8190fc4e>] kernel_init+0xe/0x110
[    1.284553]  [<ffffffff8191dc32>] ret_from_fork+0x22/0x50
[    1.284553]  [<ffffffff8190fc40>] ? rest_init+0x130/0x130
[    1.284553] Code: c7 20 f0 cd 81 31 c0 e8 a8 68 c2 ff 48 8b 73 08 eb 8e 48 8b 33 48 c7 c7 60 f0 cd 81 31 c0 41 bc f0 ff ff ff e8 8b 68 c2 ff eb 91 <0f> 0b 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 85 ff 48 89 
[    1.284553] RIP  [<ffffffff81562a86>] driver_register+0xd6/0xe0
[    1.284553]  RSP <ffff88013a6afdc0>


> Can you please check if the below patch solves the problem:
>
> 
> diff --git a/drivers/parport/share.c b/drivers/parport/share.c
> index 3308427..176b2b6 100644
> --- a/drivers/parport/share.c
> +++ b/drivers/parport/share.c
> @@ -273,6 +273,9 @@ int __parport_register_driver(struct parport_driver *drv, struct module *owner,
>  		/* using device model */
>  		int ret;
>  
> +		if (!parport_bus_type.p)
> +			return -EAGAIN;
> +
>  		/* initialize common driver fields */
>  		drv->driver.name = drv->name;
>  		drv->driver.bus = &parport_bus_type;
> 
> 
This patch helps. Feel free to use:

Tested-by: Petr Mladek <pmladek@suse.com>

Could we please get the fix into the mainline?

Best Regards,
Petr

[toc] | [next] | [standalone]


#1364762 — Re: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153!

FromLinus Torvalds <torvalds@linux-foundation.org>
Date2016-03-25 17:20 +0100
SubjectRe: [ppdev] e7223f1860: kernel BUG at drivers/base/driver.c:153!
Message-ID<rgCCR-4l1-5@gated-at.bofh.it>
In reply to#1364217
On Thu, Mar 24, 2016 at 7:41 AM, Petr Mladek <pmladek@suse.com> wrote:
>
> Could we please get the fix into the mainline?

I've reverted the offending original commit for now. The fix I see
seems questionable - just ignoring the parport registration will get
rid of the oops, but drivers shouldn't be testing that "p" value
anyway, and it also fundamentally seems to just drop the parport
registration on the floor, so it doesn't seem like a real fix anyway.

So reverting the whole mess seems like the right thing. It's triply
the right thing when it's over a month since the original report, and
this shit made it into my kernel anyway.

Not acceptable.

             Linus

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web