From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751885AbcCGBMe (ORCPT ); Sun, 6 Mar 2016 20:12:34 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:47278 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751575AbcCGBM0 (ORCPT ); Sun, 6 Mar 2016 20:12:26 -0500 Date: Sun, 6 Mar 2016 17:12:25 -0800 From: Greg KH To: Sudip Mukherjee Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] parport: register driver later Message-ID: <20160307011225.GA6588@kroah.com> References: <1457088659-12321-1-git-send-email-sudipm.mukherjee@gmail.com> <20160305201932.GA16435@kroah.com> <20160306175612.GA10487@sudip-laptop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160306175612.GA10487@sudip-laptop> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 06, 2016 at 11:26:29PM +0530, Sudip Mukherjee wrote: > On Sat, Mar 05, 2016 at 12:19:32PM -0800, Greg KH wrote: > > On Fri, Mar 04, 2016 at 04:20:59PM +0530, Sudip Mukherjee wrote: > > > If the parport bus is not yet registered and any device using parallel > > > port tries to register with the bus we get a stackdump with a message > > > of Kernel bug. > > > > > > Reported-by: Fengguang Wu > > > Tested-by: Ross Zwisler > > > Cc: # 4.2+ > > > Signed-off-by: Sudip Mukherjee > > > --- > > > > > > We should actually have some deferred probe here. But considering that > > > you will be closing your trees soon so a quick fix to solve the problem > > > for now. We will revisit this when we remove the old api (hopefully v4.7). > > > > > > drivers/parport/share.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > 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; > > > > I really don't like it when busses poke into the driver-core > > internal-only structures like this. Why can't you have your own "have > > been registered" flag instead if you really need it? Don't rely on the > > driver core here to be doing this always this way, perhaps p could be > > NULL and it only is created later on somehow? > > I saw that in i2c and spmi and followed. Sent you v2 for your review. I > will send a patch to remove the use of 'p' in those places. Thanks, that would be great. > > I need to rename 'p' to "do_not_touch_you_have_been_warned" or something > > else... > > something like this (compile tested) ? > (do you want me to send a proper patch?): Heh, no, it was kind of a joke, there's probably a better way to do it without making the driver core look like a mess... thanks, greg k-h