diff options
author | mav <mav@FreeBSD.org> | 2010-02-26 10:42:46 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-02-26 10:42:46 +0000 |
commit | 859e0a0f68c4a4fd1d24467e14d8ea59f0ad0ef0 (patch) | |
tree | ce951ff38be2e19cedd5dea0116b0d18f48dab87 /sys/cam/ata | |
parent | 119ce28bd70b8e87d0d2fddfc12c08cc6133a206 (diff) | |
download | FreeBSD-src-859e0a0f68c4a4fd1d24467e14d8ea59f0ad0ef0.zip FreeBSD-src-859e0a0f68c4a4fd1d24467e14d8ea59f0ad0ef0.tar.gz |
Make PUIS detection more strict. Previous implementation caused false
positives on VMWare's virtual CD-ROMs.
Diffstat (limited to 'sys/cam/ata')
-rw-r--r-- | sys/cam/ata/ata_xpt.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c index 0c2bf32..d5e0b32 100644 --- a/sys/cam/ata/ata_xpt.c +++ b/sys/cam/ata/ata_xpt.c @@ -788,11 +788,10 @@ noerror: ata_btrim(ident_buf->serial, sizeof(ident_buf->serial)); ata_bpack(ident_buf->serial, ident_buf->serial, sizeof(ident_buf->serial)); /* Device may need spin-up before IDENTIFY become valid. */ - if ((ident_buf->config & ATA_RESP_INCOMPLETE) || - ((ident_buf->support.command2 & ATA_SUPPORT_STANDBY) && - (ident_buf->enabled.command2 & ATA_SUPPORT_STANDBY) && - (ident_buf->support.command2 & ATA_SUPPORT_SPINUP) && - softc->spinup == 0)) { + if ((ident_buf->specconf == 0x37c8 || + ident_buf->specconf == 0x738c) && + ((ident_buf->config & ATA_RESP_INCOMPLETE) || + softc->spinup == 0)) { PROBE_SET_ACTION(softc, PROBE_SPINUP); xpt_release_ccb(done_ccb); xpt_schedule(periph, priority); |