[PATCH 2.6.16.18 0/4] sbp2: workaround for buggy iPods

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

 



There is a firmware bug in several Apple iPods which prevents access to
these iPods under certain conditions. The disk size reported by the iPod
is one sector too big. Once access to the end of the disk is attempted,
the iPod becomes inaccessible. This problem has been known for USB iPods
for some time and has recently been discovered to exist with
FireWire/USB combo iPods too.

The following patchset is the fix as it exists in Linux 2.6.17-rc. Alas
it is rather large, therefore it may be unfit for -stable as it is. If
there are objections, I would appreciate suggestions how to better adapt
this fix for -stable.

The necessary workaround is added this way:

patch 1/4: sbp2: consolidate workarounds, part one
patch 2/4: sbp2: consolidate workarounds, part two
    Infrastructure for existing *unrelated* workarounds is refactored.
    This concerns (a) module load parameters to activate workarounds,
    (b) a hardwired blacklist of known buggy devices, (c) detection of
    known buggy devices, (d) activation of the various workarounds.
    Benefits of the refactoring are better readability, extensibility,
    and finer-grained control.
    This is a single patch in 2.6.17-rc; I split it into two due to its
    size (the essential part and a part affecting comments, log messages
    etc.).

patch 3/4: add read_capacity workaround for iPod
    Extends blacklist and device detection, and adds the actual
    workaround.

patch 4/4: sbp2: add ability to override hardwired blacklist
    As we add more workarounds, potential to adversely affect other
    devices increases. This patch adds a simple feature as a safety
    belt: A new flag for the module load parameter from patch 1/4
    tells sbp2 not to use its hardwired blacklist.

Combined diffstat of patches 1/4...4/4:
 Documentation/feature-removal-schedule.txt |    9 +
 drivers/ieee1394/sbp2.c                    |  206 +++++++++++++++++++----------
 drivers/ieee1394/sbp2.h                    |   18 +-
 3 files changed, 159 insertions(+), 74 deletions(-)

So this is much more than is usually acceptable for -stable. Keeping it
this big has the benefit of minimal deviation from 2.6.17+, concerning
the code as well as sbp2's module load parameters. As I said, I could
try to rework this for minimum patch size if so desired by the -stable
team. But I suppose I would still end up with a rather big patch.

The impact of leaving this iPod workaround out of -stable is limited
because there are a few alternatives:
 - Experienced users of affected hardware may compile 2.6.16 and older
   without support for EFI GUID partition tables. This should make
   access to the end of the disk rather unlikely.
 - Experienced users of affected hardware may switch to 2.6.17+.
 - Experienced users or distributors may apply this patchset or a more
   extensive patchset for the 1394 subsystem on their own. (I am
   maintaining a bunch of rediffs of current 1394 patches for released
   kernels.)
-- 
Stefan Richter
-=====-=-==- -=-= ==-==
http://arcgraph.de/sr/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux