All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Joerg Roedel <joerg.roedel@amd.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Michael Buesch <m@bues.ch>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Kernel development list <linux-kernel@vger.kernel.org>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>
Subject: Re: Incorrect uses of get_driver()/put_driver()
Date: Tue, 10 Jan 2012 10:05:41 +0100	[thread overview]
Message-ID: <20120110100541.38a3940f@de.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1201091202090.1541-100000@iolanthe.rowland.org>

On Mon, 9 Jan 2012 12:35:09 -0500 (EST)
Alan Stern <stern@rowland.harvard.edu> wrote:

> drivers/s390/cio/device.c:1681:       drv = get_driver(&cdrv->driver);
> drivers/s390/cio/device.c:1687:       put_driver(drv);
> 
> Martin, these calls seem to be useless.  The calls in ccwgroup.c are 
> definitely useless; there's no reason to take a reference to a driver 
> while it's being unregistered, since it can't go away until the 
> unregistration is finished.

The get_driver/put_driver in ccwgroup.c are obviously useless, the caller
passed ccwgroup_driver_unregister a ccwgroup_driver reference.
I am not so sure about the code in device.c. get_ccwdev_by_busid() gets
used e.g. by vmur like this:

static struct ccw_driver ur_driver = { .. };

static struct urdev *urdev_get_from_devno(u16 devno)
{
	..
	sprintf(bus_id, "0.0.%04x", devno);
        cdev = get_ccwdev_by_busid(&ur_driver, bus_id);
	..
}

static int ur_open(struct inode *inode, struct file *file)
{
	..
	urd = urdev_get_from_devno(devno);
	..
}

For vmur we should be safe by the fact that ur_open is only possible if
a try_module_get has been successful and the ccw_driver is unregistered
only in the module exit function. But we have to check if this is true
for all users of the get_ccwdev_by_busid() function.

-- 
blue skies,
   Martin.

"Reality continues to ruin my life." - Calvin.


  parent reply	other threads:[~2012-01-10  9:06 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-05 16:31 Problems with get_driver() and driver_attach() (and new_id too) Alan Stern
2012-01-05 18:01 ` Dmitry Torokhov
2012-01-05 18:55   ` Alan Stern
2012-01-05 20:05     ` Dmitry Torokhov
2012-01-05 20:48       ` Alan Stern
2012-01-05 23:17         ` Greg KH
2012-01-06 14:42           ` Alan Stern
2012-01-06 15:42           ` Alan Stern
2012-01-06 20:29       ` Alan Stern
2012-01-09  8:48         ` Dmitry Torokhov
2012-01-09 16:37           ` Alan Stern
2012-01-09 16:50             ` Dmitry Torokhov
2012-01-09 17:01               ` Alan Stern
2012-01-09 17:05             ` Dmitry Torokhov
2012-01-09 17:35             ` Incorrect uses of get_driver()/put_driver() Alan Stern
2012-01-09 17:48               ` Konrad Rzeszutek Wilk
2012-01-09 18:20                 ` Dmitry Torokhov
2012-01-09 18:34                   ` Konrad Rzeszutek Wilk
2012-01-09 18:49                     ` Dmitry Torokhov
2012-01-09 19:36                       ` Alan Stern
2012-01-09 18:03               ` Michael Büsch
2012-01-09 18:14                 ` Dmitry Torokhov
2012-01-09 19:48                   ` Alan Stern
2012-01-09 20:07                     ` Michael Büsch
2012-01-09 22:44                       ` Alan Stern
2012-01-09 23:05                         ` Michael Büsch
2012-01-09 18:04               ` Joerg Roedel
2012-01-10  9:05               ` Martin Schwidefsky [this message]
2012-01-10  9:20                 ` Dmitry Torokhov
2012-01-10 10:03                   ` Martin Schwidefsky
2012-01-10 10:18                   ` Sebastian Ott
2012-01-10 10:21                 ` Sebastian Ott
2012-01-10 20:32                   ` Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120110100541.38a3940f@de.ibm.com \
    --to=schwidefsky@de.ibm.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=joerg.roedel@amd.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m@bues.ch \
    --cc=sebott@linux.vnet.ibm.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.