Re: BUG in: Driver core: convert block from raw kobjects to coredevices

From: Kay Sievers
Date: Mon Oct 22 2007 - 19:59:55 EST


On Sun, 2007-10-21 at 20:26 -0400, Alan Stern wrote:
> On Sun, 21 Oct 2007, Kay Sievers wrote:
>
> > > [ 458.013133] scsi_disk_release: disk sda, kobj ce8be990, refcount before put_disk 2
> > > [ 458.032420] scsi_device_dev_release: rq cd9b2000
> >
> > Hmm, I still don't see this without the final put.
>
> Yes, I see your point. Suppose you try doing the exact same thing
> again, but this time un-comment the put_device() call so that the
> scsi_device does get released. I predict that the log will show your
> request_queue drops its reference to the gendisk structure _after_ the
> gendisk has been released. (If necessary I could send a patch with a
> printk at the crucial spot.) That would prove something is going wrong
> on your system.

There is definitely something wrong, I tried all sorts of options now,
and a second machine, and I can never get the behavior you see. I even
booted with init=/bin/sh.
But true, looking at the kobject debugging for loop devices, and usb
storage driven by the ub driver, all looks fine without the additional
put.

There must be something going wrong with the block patch in conjunction
with the crazy SCSI release logic. Can you send me your .config? Just
for a check, maybe you have some option, enabled/disabled that changes
the behavior, and possibly brings us closer to find the bug.

Thanks,
Kay

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/