public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@SteelEye.com>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: SCSI Mailing List <linux-scsi@vger.kernel.org>,
	linux1394-devel@lists.sourceforge.net,
	Ben Collins <bcollins@debian.org>
Subject: Re: sbp2: modprobe -r fails, module allegedly in use
Date: Sun, 10 Jul 2005 12:29:22 -0500	[thread overview]
Message-ID: <1121016562.5078.15.camel@mulgrave> (raw)
In-Reply-To: <42D133EE.9090204@s5r6.in-berlin.de>

On Sun, 2005-07-10 at 16:42 +0200, Stefan Richter wrote:
> it seems the sbp2 driver module can never be unloaded because the
> module "is in use" even though all SBP-2 devices were physically removed
> (after umount etc.). I believe it is an old problem of the last few 2.6
> kernels but am not sure when it was really introduced.
> 
> One thing can easily be spotted by "ps x": The scsi_error_handler of an
> SBP-2 device does not exit. The /sys/bus/scsi/devices/$a:$b:$c:$d 
> vanished, the /sys/bus/ieee1394/devices/$guid-$unit too, but the 
> scsi_eh_# daemon is still there. It seems shost->shost_gendev.release 
> was never called.
> 
> So I just added a few more scsi_host_put() to sbp2_remove_device(). 
> scsi_eh_# now goes away when I disconnect the device. Still, modprobe -r 
> sbp2 fails with "FATAL: Module sbp2 is in use.".

Actually, I think your error is the opposite of this: you should never
have to do a scsi_host_put() unless you did a corresponding
scsi_host_get(), which, as far as I can see, sbp2 never does, so the
extra put should be meaningless.

Except, I notice that you don't do a scsi_device_put() after
scsi_add_device().  I think this is probably the source of the
refcounting errors: scsi_add_device returns an sdev with the refcount
incremented by one, so you need to decrement the count after you've
finished with it (in your case, you do nothing with it, so just
decrement after you've checked it's not an error pointer).

James



  parent reply	other threads:[~2005-07-10 17:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-10 14:42 sbp2: modprobe -r fails, module allegedly in use Stefan Richter
2005-07-10 15:07 ` Stefan Richter
2005-07-10 15:31 ` Ben Collins
2005-07-10 17:40   ` Christoph Hellwig
2005-07-10 17:46     ` Ben Collins
2005-07-10 17:49       ` Christoph Hellwig
2005-07-10 17:52         ` Ben Collins
2005-07-10 17:29 ` James Bottomley [this message]
2005-07-10 17:37   ` Ben Collins
2005-07-10 17:51     ` Stefan Richter

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=1121016562.5078.15.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=bcollins@debian.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=stefanr@s5r6.in-berlin.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox