On Wed, 2006-01-04 at 16:56 -0800, Greg KH wrote: > You mean, put a might_sleep() in put_device()? Yes, I can do that, as > that function might sleep. SCSI is the culprit here, and I thought that > the scsi developers had fixed this up already. No .. I identified one clear culprit which was fixed, but I also said we have exposure to this all over the place. Our basic problem is that we have a complex refcounted model for hosts, devices and commands. Since the I/O paths are all accessible from either user or softirq context, most of these puts will be in potentially illegal places. We could get out of this by dumping device refcounting and implementing our own instead, but that really doesn't sound to be the right thing to do. Conversely, putting workqueues everywhere to get around this, like I did for the target handling, is going to get very messy. James - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html