[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.1201101524440.1594-100000@iolanthe.rowland.org>
Date: Tue, 10 Jan 2012 15:32:52 -0500 (EST)
From: Alan Stern <stern@...land.harvard.edu>
To: Sebastian Ott <sebott@...ux.vnet.ibm.com>
cc: Martin Schwidefsky <schwidefsky@...ibm.com>,
Joerg Roedel <joerg.roedel@....com>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Michael Buesch <m@...s.ch>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
Kernel development list <linux-kernel@...r.kernel.org>
Subject: Re: Incorrect uses of get_driver()/put_driver()
On Tue, 10 Jan 2012, Sebastian Ott wrote:
> [PATCH] cio: remove {get,put}_driver
>
> Remove useless {get,put}_driver - the caller of the functions
> has to ensure valid driver pointers.
>
> Signed-off-by: Sebastian Ott <sebott@...ux.vnet.ibm.com>
> ---
> drivers/s390/cio/ccwgroup.c | 2 --
> drivers/s390/cio/device.c | 8 +-------
> 2 files changed, 1 insertion(+), 9 deletions(-)
>
> --- a/drivers/s390/cio/ccwgroup.c
> +++ b/drivers/s390/cio/ccwgroup.c
> @@ -580,7 +580,6 @@ void ccwgroup_driver_unregister(struct c
> struct device *dev;
>
> /* We don't want ccwgroup devices to live longer than their driver. */
> - get_driver(&cdriver->driver);
> while ((dev = driver_find_device(&cdriver->driver, NULL, NULL,
> __ccwgroup_match_all))) {
> struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
> @@ -592,7 +591,6 @@ void ccwgroup_driver_unregister(struct c
> mutex_unlock(&gdev->reg_mutex);
> put_device(dev);
> }
> - put_driver(&cdriver->driver);
> driver_unregister(&cdriver->driver);
> }
> EXPORT_SYMBOL(ccwgroup_driver_unregister);
> --- a/drivers/s390/cio/device.c
> +++ b/drivers/s390/cio/device.c
> @@ -1676,15 +1676,9 @@ struct ccw_device *get_ccwdev_by_busid(s
> const char *bus_id)
> {
> struct device *dev;
> - struct device_driver *drv;
>
> - drv = get_driver(&cdrv->driver);
> - if (!drv)
> - return NULL;
> -
> - dev = driver_find_device(drv, NULL, (void *)bus_id,
> + dev = driver_find_device(&cdrv->driver, NULL, (void *)bus_id,
> __ccwdev_check_busid);
> - put_driver(drv);
>
> return dev ? to_ccwdev(dev) : NULL;
> }
Thanks Sebastian and everybody else. It looks like there's no reason
not to simply remove get_driver() and put_driver(), so I'll do just
that. This patch can be part of the job -- unless someone else wants
to commit it first.
To avoid possible conflicts, I'll wait until after the merge window
closes and things stabilize a little before posting any changes.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists