Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: improve phantom device detection
This commit is contained in:
commit
fa0cfc202c
|
@ -1227,10 +1227,19 @@ fsm_start:
|
|||
/* ATA PIO protocol */
|
||||
if (unlikely((status & ATA_DRQ) == 0)) {
|
||||
/* handle BSY=0, DRQ=0 as error */
|
||||
if (likely(status & (ATA_ERR | ATA_DF)))
|
||||
if (likely(status & (ATA_ERR | ATA_DF))) {
|
||||
/* device stops HSM for abort/error */
|
||||
qc->err_mask |= AC_ERR_DEV;
|
||||
else {
|
||||
|
||||
/* If diagnostic failed and this is
|
||||
* IDENTIFY, it's likely a phantom
|
||||
* device. Mark hint.
|
||||
*/
|
||||
if (qc->dev->horkage &
|
||||
ATA_HORKAGE_DIAGNOSTIC)
|
||||
qc->err_mask |=
|
||||
AC_ERR_NODEV_HINT;
|
||||
} else {
|
||||
/* HSM violation. Let EH handle this.
|
||||
* Phantom devices also trigger this
|
||||
* condition. Mark hint.
|
||||
|
|
Loading…
Reference in New Issue