Re: [linux-usb-devel] USB/hal: USB open() broken? (USB CD burnerunderruns, USB HDD hard resets)

From: Alan Stern
Date: Tue Jun 20 2006 - 10:21:45 EST


On Tue, 20 Jun 2006, Andreas Mohr wrote:

> But how would HAL safely determine whether a (IDE/USB) drive is busy?
> As my test app demonstrates (without HAL running), the *very first* open()
> happening during an ongoing burning operation will kill it instantly, in the
> USB case.
> Are there any options left for HAL at all? Still seems to strongly point
> towards a kernel issue so far.
>
> One (rather less desireable) way I can make up might be to have HAL
> keep the device open permanently and do an ioctl query on whether it's "busy"
> and then quickly close the device again before the newly started
> burning process gets disrupted (if this even properly works at all).

The open() call is not in itself the problem.

I would guess that the problem is sparked by the TEST UNIT READY command
automatically sent when the device file is opened. Although a drive
should have no difficulty handling this command while carrying out a burn,
apparently yours aborts. In other words, this is likely to be a firmware
problem in the CD drive.

I can't tell what's going on with the USB HDD since you haven't provided
any information.

If you want to find out what's actually happening instead of just
guessing, turn on CONFIG_USB_STORAGE_DEBUG and see what the kernel log has
to say for the time when the underrun/reset occurs.

Alan Stern

-
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/