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

From: Sudip Mukherjee
Date: Mon Feb 15 2016 - 06:50:23 EST


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@xxxxxxxxx>
> AuthorDate: Fri Feb 12 18:33:45 2016 +0530
> Commit: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

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.
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;


--
regards
sudip