Loading drivers/ata/libata-sff.c +11 −2 Original line number Original line Diff line number Diff line Loading @@ -1227,10 +1227,19 @@ int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, /* ATA PIO protocol */ /* ATA PIO protocol */ if (unlikely((status & ATA_DRQ) == 0)) { if (unlikely((status & ATA_DRQ) == 0)) { /* handle BSY=0, DRQ=0 as error */ /* 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 */ /* device stops HSM for abort/error */ qc->err_mask |= AC_ERR_DEV; 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. /* HSM violation. Let EH handle this. * Phantom devices also trigger this * Phantom devices also trigger this * condition. Mark hint. * condition. Mark hint. Loading Loading
drivers/ata/libata-sff.c +11 −2 Original line number Original line Diff line number Diff line Loading @@ -1227,10 +1227,19 @@ int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, /* ATA PIO protocol */ /* ATA PIO protocol */ if (unlikely((status & ATA_DRQ) == 0)) { if (unlikely((status & ATA_DRQ) == 0)) { /* handle BSY=0, DRQ=0 as error */ /* 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 */ /* device stops HSM for abort/error */ qc->err_mask |= AC_ERR_DEV; 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. /* HSM violation. Let EH handle this. * Phantom devices also trigger this * Phantom devices also trigger this * condition. Mark hint. * condition. Mark hint. Loading