Re: ehci_hcd fails to read a single good block

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 26 Mar 2012, Norman Diamond wrote:

> dd if=/dev/sdb of=/dev/zero bs=512 count=1 skip=551563
> should succeed because block 551563 has no problem.  But it fails because ehci_hcd insists on reading blocks 551560 through 551567, and block 551562 does have a problem.

No, ehci-hcd insists on nothing.  It is the block layer which insists 
on reading an entire page at a time.

> Some years ago similar problems in linux-ide and libata were fixed.  ehci_hcd would also benefit from fixing.

This has nothing at all to do with ehci-hcd.  You can prove this
(assuming your computer has a UHCI or OHCI controller) by unloading
ehci-hcd and running the test again.

> ehci_hcd has further problems.  After failing to read block 551562, it tries to reassign device addresses on the USB bus, fails repeatedly, and gives up.  Unplugging and replugging the USB cable fixes this, so that block numbers far enough away from bad blocks can be read again.  I think that unplugging should not be necessary.

ehci_hcd does not try to reassign anything.  Rather, it is usb-storage 
which resets the non-working device.

If the device were working properly, unplugging and replugging it
wouldn't be necessary.  The failure is entirely the device's fault.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux