linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@sous-sol.org>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgewood <reviews@ml.cw.f00f.org>,
	torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk,
	Stefan Richter <stefanr@s5r6.in-berlin.de>
Subject: [PATCH 11/11] sbp2: backport read_capacity workaround for iPod
Date: Fri, 02 Jun 2006 00:00:11 -0700	[thread overview]
Message-ID: <20060602194747.131106000@sous-sol.org> (raw)
In-Reply-To: 20060602194618.482948000@sous-sol.org

[-- Attachment #1: sbp2-backport-read_capacity-workaround-for-ipod.patch --]
[-- Type: text/plain, Size: 1921 bytes --]

-stable review patch.  If anyone has any objections, please let us know.
------------------

From: Stefan Richter <stefanr@s5r6.in-berlin.de>

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.

This patch is derived from the fix in Linux 2.6.17, commit
e9a1c52c7b19d10342226c12f170d7ab644427e2, to be applicable to 2.6.16.x
without prerequisite patches. It hard-wires a workaround for three known
affected model numbers (those of 4th generation iPod, iPod Photo, iPod
mini).

Note: This patch lacks Linux 2.6.17's ability to enable and disable the
workaround via a module parameter.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---

 drivers/ieee1394/sbp2.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

--- linux-2.6.16.19.orig/drivers/ieee1394/sbp2.c
+++ linux-2.6.16.19/drivers/ieee1394/sbp2.c
@@ -2491,9 +2491,20 @@ static int sbp2scsi_slave_alloc(struct s
 
 static int sbp2scsi_slave_configure(struct scsi_device *sdev)
 {
+	struct scsi_id_instance_data *scsi_id =
+		(struct scsi_id_instance_data *)sdev->host->hostdata[0];
+
 	blk_queue_dma_alignment(sdev->request_queue, (512 - 1));
 	sdev->use_10_for_rw = 1;
 	sdev->use_10_for_ms = 1;
+
+	if ((scsi_id->sbp2_firmware_revision & 0xffff00) == 0x0a2700 &&
+	    (scsi_id->ud->model_id == 0x000021 /* gen.4 iPod */ ||
+	     scsi_id->ud->model_id == 0x000023 /* iPod mini  */ ||
+	     scsi_id->ud->model_id == 0x00007e /* iPod Photo */ )) {
+		SBP2_INFO("enabling iPod workaround: decrement disk capacity");
+		sdev->fix_capacity = 1;
+	}
 	return 0;
 }
 

--

      parent reply	other threads:[~2006-06-02 19:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-02 19:46 [PATCH 00/11] -stable review Chris Wright
2006-06-02  7:00 ` [PATCH 01/11] Altix: correct ioc4 port order Chris Wright
2006-06-02  7:00 ` [PATCH 02/11] Altix: correct ioc3 " Chris Wright
2006-06-02  7:00 ` [PATCH 03/11] Cpuset: might sleep checking zones allowed fix Chris Wright
2006-06-02  7:00 ` [PATCH 04/11] PowerMac: force only suspend-to-disk to be valid Chris Wright
2006-06-02  7:00 ` [PATCH 05/11] Input: psmouse - fix new device detection logic Chris Wright
2006-06-02  7:00 ` [PATCH 06/11] ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices Chris Wright
2006-06-02  7:00 ` [PATCH 07/11] the latest consensus libata resume fix Chris Wright
2006-06-02 19:50   ` Jens Axboe
2006-06-02 20:02     ` Greg KH
2006-06-02 20:02     ` [stable] " Chris Wright
2006-06-03  8:49     ` Marcel Holtmann
2006-06-03 13:22       ` Jens Axboe
2006-06-03 17:41         ` Chris Wright
2006-06-02  7:00 ` [PATCH 08/11] ipw2200: Filter unsupported channels out in ad-hoc mode Chris Wright
2006-06-02  7:00 ` [PATCH 09/11] x86_64: x86_64 add crashdump trigger points Chris Wright
2006-06-02  7:00 ` [PATCH 10/11] x86_64: Dont do syscall exit tracing twice Chris Wright
2006-06-02  7:00 ` Chris Wright [this message]

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=20060602194747.131106000@sous-sol.org \
    --to=chrisw@sous-sol.org \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=stable@kernel.org \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=torvalds@osdl.org \
    --cc=tytso@mit.edu \
    --cc=zwane@arm.linux.org.uk \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).