From: Hans de Goede <j.w.r.degoede-fbo2DhPpy/Q@public.gmane.org>
To: James Bottomley
<James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
Cc: Greg KH <greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>,
Matthew Dharm
<mdharm-scsi-JGfshJpz5UybPZpvUQj5UqxOck334EZe@public.gmane.org>,
Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>,
USB Storage list
<usb-storage-ijkIwGHArpdIPJnuZ7Njw4oP9KaGy4wf@public.gmane.org>,
USB development list
<linux-usb-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
David Brown
<usb-storage2-GijAUarxTbMdnm+yROfE0A@public.gmane.org>,
linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: PATCH: usb-storage-set-last-sector-bug-flag.patch
Date: Sun, 20 Jan 2008 22:25:38 +0100 [thread overview]
Message-ID: <4793BC52.2040902@hhs.nl> (raw)
In-Reply-To: <1200863008.3105.30.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
James Bottomley wrote:
> On Sun, 2008-01-20 at 12:56 -0800, Greg KH wrote:
>> On Sun, Jan 20, 2008 at 11:27:29AM +0100, Hans de Goede wrote:
>>> Hi all,
>>>
>>> This patch sets the last_sector_bug flag to 1 for all USB disks. This is
>>> needed to makes the cardreader on various HP multifunction printers work.
>>>
>>> Since the performance impact is negible we set this flag for all USB disks
>>> to avoid an unusual_devs.h nightmare.
>> Oh great, now my "working just fine" USB devices, which happen to have
>> data in the last sector, suddenly stop working.
>>
>> That's not acceptable :(
>
> I don't see how this will happen, might you not be confusing this change
> (which allows access to the last sector, just insists that it be
> accessed by a single sector read) with US_FL_FIX_CAPACITY which is for
> devices that report having one more sectors than they actually have and
> therefore adjusts the access limits down by one?
>
Let me try to explain some more, the scsi-sd patch, which goes hand in hand
with this adds a last_sector_bug flag, which is indeed a different flag form
the fix_capacity flag. Both deal with with what are (in case of the
last_sector_bug flag probably) off by one bugs.
The fix_capacity flag is for devices which report their last sector is N (with
sectors numbered from 0 - N) but in reality / they mean they have N sectors,
so their last sector really is N - 1.
The last_sector_bug flag is for a bug (sofar only seen in HP multifunction
printers with cardreader when using an sdcard) where the reader will cease to
function (returns error codes in response to each and every command) after one
has attempted to read the last sector in a read larger then 1 sector. To be
clear an example lets say an example disk has 256 sectors, numbered 0 - 255.
Then the following reads will all cause the reader to go into borked mode:
16 sectors starting at 240
8 sectors starting at 248
2 sectors starting at 254
Yet the last sector can still be read without problems the following read:
1 sector starting at 255
So what the scsi-sd part of these 2 patches does it adds a last_sector_bug
flag, which when set will cause the layer to split a read like this:
16 sectors starting at 240
Into:
15 sectors starting at 240
1 sector starting at 255
Since reading the last sector is a rare occurence (but one which does happen
every time when determining the partition table, triggering the bug on every
card insert). and since there are a lot of different HP printer models ( and
cheap usb card readers are notoriously buggy so other cardreaders might be
affected too), Matthew Dharm (the usb-storage maintainer) thought it best to
enable this for all devices.
Regards,
Hans
next prev parent reply other threads:[~2008-01-20 21:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-20 10:27 PATCH: usb-storage-set-last-sector-bug-flag.patch Hans de Goede
2008-01-20 20:56 ` Greg KH
[not found] ` <20080120205625.GB28842-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-01-20 21:03 ` James Bottomley
[not found] ` <1200863008.3105.30.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-01-20 21:25 ` Hans de Goede [this message]
2008-01-20 21:39 ` [usb-storage] " Guillaume Bedot
2008-01-20 21:45 ` Alan Stern
2008-01-23 18:12 ` Greg KH
[not found] ` <20080123181239.GA21836-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2008-01-23 18:39 ` James Bottomley
2008-01-23 18:50 ` Greg KH
2008-01-24 17:07 ` Stefan Richter
2008-01-24 17:21 ` Greg KH
2008-01-25 17:12 ` James Bottomley
2008-01-25 19:23 ` Matthew Dharm
[not found] ` <4798C5B4.1000208-MtYdepGKPcBMYopoZt5u/LNAH6kLmebB@public.gmane.org>
2008-01-24 17:22 ` Stefan Richter
[not found] ` <47932211.90105-fbo2DhPpy/Q@public.gmane.org>
2008-01-22 8:26 ` [usb-storage] " Guillaume Bedot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4793BC52.2040902@hhs.nl \
--to=j.w.r.degoede-fbo2dhppy/q@public.gmane.org \
--cc=James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
--cc=bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org \
--cc=greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org \
--cc=linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mdharm-scsi-JGfshJpz5UybPZpvUQj5UqxOck334EZe@public.gmane.org \
--cc=usb-storage-ijkIwGHArpdIPJnuZ7Njw4oP9KaGy4wf@public.gmane.org \
--cc=usb-storage2-GijAUarxTbMdnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.