[lkml]   [2006]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH 0/4] sbp2: workaround for buggy iPods
    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

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

    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
    Stefan Richter
    -=====-=-==- -=-= ==-==

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-05-27 15:02    [W:0.021 / U:0.188 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site