On Fri, 28 Sep 2007, Oliver Neukum wrote: > Unless I am very mistaken, further down in storage_suspend, I call > > + /* In case of autosuspend device must be unblocked again */ > + if (us->pusb_dev->auto_pm) { > +err_unblock: > + shost_for_each_device(sdev, host) { > + if (sdev == sdev2) { > + scsi_device_put(sdev); > + break; > + } > + scsi_device_resume(sdev); > > which again allows normal io, so the autoresume is triggered. > It may deadlock, you are right about that, but it is definitely triggered. > I verified that experimentally. Yes, okay, sorry, I didn't read far enough into the patch. Still, doesn't it seem peculiar that to implement autosuspend you have to quiesce the device and then reactivate it? In fact, it's not clear why you want to call scsi_device_quiesce() in the first place. The fact that scsi_bus_suspend() does it isn't a good reason. Alan Stern - To unsubscribe from this list: 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