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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to