From: Chris Wright Date: Tue, 21 Mar 2006 06:53:52 +0000 (-0800) Subject: Add SATA fix, fwd from jgarzik X-Git-Tag: v2.6.16.1~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd07f11f84b936c1628bd30bc653d6646bf070b7;p=thirdparty%2Fkernel%2Fstable-queue.git Add SATA fix, fwd from jgarzik --- 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 index 00000000000..fc1125cc900 --- /dev/null +++ b/queue-2.6.16/sata_mv-fix-irq-port-status-usage.patch @@ -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 +To: Andrew Morton , Linus Torvalds +CC: "linux-ide@vger.kernel.org" , + Linux Kernel +Subject: [libata] sata_mv: fix irq port status usage + +From: Jeff Garzik + +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 +Signed-off-by: Chris Wright +--- + + 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 index 00000000000..5341cc94240 --- /dev/null +++ b/queue-2.6.16/series @@ -0,0 +1 @@ +sata_mv-fix-irq-port-status-usage.patch