Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Feb 2007 09:58:12 +0100
From:      des@des.no (Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?=)
To:        Warner Losh <imp@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/usb umass.c
Message-ID:  <86d53ufyl7.fsf@dwp.des.no>
In-Reply-To: <200702272233.l1RMXocb004983@repoman.freebsd.org> (Warner Losh's message of "Tue, 27 Feb 2007 22:33:50 %2B0000 (UTC)")
References:  <200702272233.l1RMXocb004983@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh <imp@FreeBSD.org> writes:
>   Log:
>   Some USB mass storage devices return the number of sectors in response
>   to a READ_CAPACITY request rather than the maximum sector (off by one
>   problem).  This causes a huge cascade of errors as the geom tasting
>   code tries to read the last sector (which isn't really there in the
>   face of this error).  automated tools that manipulate disk labels and
>   such also have issues.
>=20=20=20
>   Create a new quirk READ_CAPACITY_OFFBY1 and add a quirk for the
>   SanDISK ImageMate that I have that suffers from this problem (the
>   SDDR-31).  It intercepts the READ_CAPACITY response and adjusts it
>   from number of sectors to max sector for devices with this quirk.
>=20=20=20
>   Reading the Linux source suggests that there are a host of
>   other devices with this issue, including iPods and some popular
>   cameras.  I've not added quirks for them, since I don't have the
>   devices in front of me to test.

How about the following dirty hack: if the appropriate kernel option /
device hint / sysctl knob is frobbed, when a READ_CAPACITY request
completes, try to read the last sector, and if that doesn't work,
adjust the result and print a warning to the console?

DES
--=20
Dag-Erling Sm=F8rgrav - des@des.no



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86d53ufyl7.fsf>