Date: Wed, 28 Feb 2007 03:16:37 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: des@des.no 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: <20070228.031637.-15687335.imp@bsdimp.com> In-Reply-To: <86d53ufyl7.fsf@dwp.des.no> References: <200702272233.l1RMXocb004983@repoman.freebsd.org> <86d53ufyl7.fsf@dwp.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <86d53ufyl7.fsf@dwp.des.no> des@des.no (Dag-Erling Sm=F8rgrav) writes: : Warner Losh <imp@FreeBSD.org> writes: : > Log: : > Some USB mass storage devices return the number of sectors in res= ponse : > to a READ_CAPACITY request rather than the maximum sector (off by= one : > problem). This causes a huge cascade of errors as the geom tasti= ng : > code tries to read the last sector (which isn't really there in t= he : > face of this error). automated tools that manipulate disk labels= and : > such also have issues. : > = : > 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 i= t : > from number of sectors to max sector for devices with this quirk.= : > = : > 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? HOW ABOUT PEOPLE SUBMIT PATCHES RATHER THAN SUGGEST MORE WORK FOR ME. I ALREADY DISCUSSED THIS IN SCSI@. ALL ARMCHAIR GENERALS ARE HEREBY INVITED TO SUBMIT TESTED PATCHES. HAVE A NICE DAY. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070228.031637.-15687335.imp>