aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/siis
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2010-01-29 12:47:04 +0000
committerAlexander Motin <mav@FreeBSD.org>2010-01-29 12:47:04 +0000
commited70cffd357e53e451a3375263aade82c327edff (patch)
tree2694dea9ed638d13947e0ea04cee0353de5b8269 /sys/dev/siis
parentdec3772ee4551a9562e9dbecb820d00bd0887a0c (diff)
downloadsrc-ed70cffd357e53e451a3375263aade82c327edff.tar.gz
src-ed70cffd357e53e451a3375263aade82c327edff.zip
Reset port on disconnect event, to abort any running requests.
Notes
Notes: svn path=/head/; revision=203165
Diffstat (limited to 'sys/dev/siis')
-rw-r--r--sys/dev/siis/siis.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c
index 630ee7b44c97..5298c1897eeb 100644
--- a/sys/dev/siis/siis.c
+++ b/sys/dev/siis/siis.c
@@ -741,17 +741,15 @@ siis_phy_check_events(device_t dev)
u_int32_t status = ATA_INL(ch->r_mem, SIIS_P_SSTS);
union ccb *ccb;
- if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) &&
- ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) &&
- ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) {
- if (bootverbose)
+ if (bootverbose) {
+ if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) &&
+ ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) &&
+ ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) {
device_printf(dev, "CONNECT requested\n");
- siis_reset(dev);
- } else {
- if (bootverbose)
+ } else
device_printf(dev, "DISCONNECT requested\n");
- ch->devices = 0;
}
+ siis_reset(dev);
if ((ccb = xpt_alloc_ccb_nowait()) == NULL)
return;
if (xpt_create_path(&ccb->ccb_h.path, NULL,