On Fri, 27 Apr 2007, Oliver Neukum wrote:
> Am Freitag, 27. April 2007 20:55 schrieb Greg Kroah-Hartman:
> > + } else if (len == sizeof suspend_string - 1 &&
> > + strncmp(buf, suspend_string, len) == 0) {
> > + udev->autosuspend_disabled = 0;
> > + udev->autoresume_disabled = 1;
> > + rc = usb_external_suspend_device(udev, PMSG_SUSPEND);
> > +
>
> Hi,
>
> this introduces the possibility of a suspension while user space is
> doing IO.
In other words, one user can force a device to suspend while another user
is trying to access the device. True enough. The second user will get
I/O errors.
This is why sysfs files need write-access restrictions.
> Now I know that I was in favor of doing this. But on second
> thought, it is problematic. It seems to me we should have a way
> to generically block io. This is not solvable in the suspend method,
> as we can't tell this apart from STR. We'd need locks between
> suspend and all io methods.
>
> What's to be done?
Why bother to block I/O? Let it fail. It's no worse than what happens
when you unplug a USB device.
In general, I/O shouldn't be blocked at the device driver level. It
should be blocked higher up, in a class device or an I/O queue manager --
if it is to be blocked at all.
Alan Stern
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel