diff options
author | xun ni - Sun Microsystems - Beijing China <Xun.Ni@Sun.COM> | 2008-11-07 10:39:48 +0800 |
---|---|---|
committer | xun ni - Sun Microsystems - Beijing China <Xun.Ni@Sun.COM> | 2008-11-07 10:39:48 +0800 |
commit | a3f55fb1977ba058abdedc838f93a52aeff2d667 (patch) | |
tree | 6cce4d54d53e265a2d20011a28448c6a4e7d30d7 /usr/src | |
parent | fe54a78e1aacf39261ad56e9903bce02e3fb6d21 (diff) | |
download | illumos-joyent-a3f55fb1977ba058abdedc838f93a52aeff2d667.tar.gz |
6487665 si3124 driver hit panic during diskomizer test
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/io/sata/adapters/si3124/si3124.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/usr/src/uts/common/io/sata/adapters/si3124/si3124.c b/usr/src/uts/common/io/sata/adapters/si3124/si3124.c index 4d9c9ecc24..f661dc7ff3 100644 --- a/usr/src/uts/common/io/sata/adapters/si3124/si3124.c +++ b/usr/src/uts/common/io/sata/adapters/si3124/si3124.c @@ -1350,10 +1350,10 @@ si_mop_commands(si_ctl_state_t *si_ctlp, SIDBG1(SIDBG_ERRS, si_ctlp, "si_mop_commands sending up completed satapkt: %x", satapkt); - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_COMPLETED); CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); CLEAR_BIT(finished_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_COMPLETED); } ASSERT(finished_tags == 0); @@ -1426,10 +1426,9 @@ si_mop_commands(si_ctl_state_t *si_ctlp, si_read_log_ext(si_ctlp, si_portp, port); } - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_DEV_ERROR); - CLEAR_BIT(failed_tags, tmpslot); CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_DEV_ERROR); } ASSERT(failed_tags == 0); @@ -1448,10 +1447,9 @@ si_mop_commands(si_ctl_state_t *si_ctlp, "spkt up with PKT_TIMEOUT: %x", satapkt); - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_TIMEOUT); - CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); CLEAR_BIT(timedout_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_TIMEOUT); } ASSERT(timedout_tags == 0); @@ -1472,10 +1470,10 @@ si_mop_commands(si_ctl_state_t *si_ctlp, SATA_DTYPE_ATAPICD) { si_set_sense_data(satapkt, SATA_PKT_ABORTED); } - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_ABORTED); CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); CLEAR_BIT(aborting_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_ABORTED); } @@ -1493,10 +1491,10 @@ si_mop_commands(si_ctl_state_t *si_ctlp, "si_mop_commands sending PKT_RESET for " "reset spkt: %x", satapkt); - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_RESET); CLEAR_BIT(reset_tags, tmpslot); CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_RESET); } ASSERT(reset_tags == 0); @@ -1513,10 +1511,10 @@ si_mop_commands(si_ctl_state_t *si_ctlp, "si_mop_commands sending PKT_BUSY for " "retry spkt: %x", satapkt); - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_BUSY); CLEAR_BIT(unfinished_tags, tmpslot); CLEAR_BIT(si_portp->siport_pending_tags, tmpslot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_BUSY); } ASSERT(unfinished_tags == 0); @@ -3640,10 +3638,9 @@ si_intr_command_complete( if (satapkt->satapkt_cmd.satacmd_flags.sata_special_regs) si_copy_out_regs(&satapkt->satapkt_cmd, &prb->prb_fis); - SENDUP_PACKET(si_portp, satapkt, SATA_PKT_COMPLETED); - CLEAR_BIT(si_portp->siport_pending_tags, finished_slot); CLEAR_BIT(finished_tags, finished_slot); + SENDUP_PACKET(si_portp, satapkt, SATA_PKT_COMPLETED); } SIDBG2(SIDBG_PKTCOMP, si_ctlp, |