]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add SATA fix, fwd from jgarzik
authorChris Wright <chrisw@sous-sol.org>
Tue, 21 Mar 2006 06:53:52 +0000 (22:53 -0800)
committerChris Wright <chrisw@sous-sol.org>
Tue, 21 Mar 2006 06:53:52 +0000 (22:53 -0800)
queue-2.6.16/sata_mv-fix-irq-port-status-usage.patch [new file with mode: 0644]
queue-2.6.16/series [new file with mode: 0644]

diff --git a/queue-2.6.16/sata_mv-fix-irq-port-status-usage.patch b/queue-2.6.16/sata_mv-fix-irq-port-status-usage.patch
new file mode 100644 (file)
index 0000000..fc1125c
--- /dev/null
@@ -0,0 +1,40 @@
+From linux-kernel-owner+chrisw=40sous-sol.org-S932239AbWCUA6A@vger.kernel.org  Mon Mar 20 16:59:02 2006
+Date:  Mon, 20 Mar 2006 19:57:57 -0500
+From: Jeff Garzik <jeff@garzik.org>
+To: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>
+CC: "linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
+        Linux Kernel <linux-kernel@vger.kernel.org>
+Subject: [libata] sata_mv: fix irq port status usage
+
+From: Jeff Garzik <jeff@garzik.org>
+
+Interrupt handler did not properly initialize a variable on a per-port
+basis, leading to incorrect behavior on ports other than port 0.
+
+Bug caught and fixed by Mark Lord.
+
+Signed-off-by: Jeff Garzik <jeff@garzik.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ drivers/scsi/sata_mv.c |    2 +-
+ 1 files changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.16.y.orig/drivers/scsi/sata_mv.c
++++ linux-2.6.16.y/drivers/scsi/sata_mv.c
+@@ -1192,7 +1192,6 @@ static void mv_host_intr(struct ata_host
+       u32 hc_irq_cause;
+       int shift, port, port0, hard_port, handled;
+       unsigned int err_mask;
+-      u8 ata_status = 0;
+       if (hc == 0) {
+               port0 = 0;
+@@ -1210,6 +1209,7 @@ static void mv_host_intr(struct ata_host
+               hc,relevant,hc_irq_cause);
+       for (port = port0; port < port0 + MV_PORTS_PER_HC; port++) {
++              u8 ata_status = 0;
+               ap = host_set->ports[port];
+               hard_port = port & MV_PORT_MASK;        /* range 0-3 */
+               handled = 0;    /* ensure ata_status is set if handled++ */
diff --git a/queue-2.6.16/series b/queue-2.6.16/series
new file mode 100644 (file)
index 0000000..5341cc9
--- /dev/null
@@ -0,0 +1 @@
+sata_mv-fix-irq-port-status-usage.patch