summaryrefslogtreecommitdiff
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-03-20 19:57:57 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-27 22:47:29 -0800
commit1dd6f008de5a04251d9cbe4c1cf67e4c708f9fe9 (patch)
tree576128b87d4be44cb87760e32094737151cb9aee /drivers/scsi
parent7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff)
downloadlwn-1dd6f008de5a04251d9cbe4c1cf67e4c708f9fe9.tar.gz
lwn-1dd6f008de5a04251d9cbe4c1cf67e4c708f9fe9.zip
[PATCH] sata_mv: fix irq port status usage
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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/sata_mv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c
index 2770005324b4..236d08bf05ad 100644
--- a/drivers/scsi/sata_mv.c
+++ b/drivers/scsi/sata_mv.c
@@ -1192,7 +1192,6 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
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_set *host_set, u32 relevant,
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++ */