Re: usb-storage, error reading the last 8 sectors, regression in2.6.25-rc7

From: Alan Stern
Date: Wed Apr 02 2008 - 10:15:55 EST


On Wed, 2 Apr 2008, Hans de Goede wrote:

> Maybe we should first determine that the regression is _really_
> caused by this?
>
> When testing yesterday I did a printk of any (unmodified) reads which would
> touch the last sector and quite a few where not 8 sector reads, so if this
> devices goes barf on any last sector including read of a different size then 8,
> it will have troubles without the work around too.
>
> First we need to determine what _exactly_ causes this device to become unhappy
> (which should be trivial to test through dd), if I understand things sofar, the
> device doesn't like if a read is done which stops one sector short of the last
> sector. Such a read being done could happen without my split requests code
> too, so making that conditional then wouldn't do any good, it would only make
> the bug (much) less likely to get triggered, but it could still happen en
> probably be reproduced by a trivial dd command.

That's a good point. Sergey, by using the "skip=" option in dd you
should be able to test lots of possible combinations. Verify that if
you start 8 sectors from the end, then reading 8 sectors works and
reading 7 sectors fails. Then see what other combinations fail; for
example, how far back before the end do you have to start before
reading 7 sectors will work? Or what happens if you start 2 sectors
before the end and read 1 or 2 sectors? Or if you start 7 sectors
before the end and read 6 or 7?

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/