Loading drivers/scsi/ata_piix.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -567,8 +567,8 @@ static int piix_sata_prereset(struct ata_port *ap) present = 1; present = 1; } } DPRINTK("ata%u: LEAVE, pcs=0x%x present_mask=0x%x\n", DPRINTK("ata%u: LEAVE, pcs=0x%x present=0x%x\n", ap->id, pcs, present_mask); ap->id, pcs, present); if (!present) { if (!present) { ata_port_printk(ap, KERN_INFO, "SATA port has no device.\n"); ata_port_printk(ap, KERN_INFO, "SATA port has no device.\n"); Loading drivers/scsi/libata-scsi.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -2353,6 +2353,19 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc) ata_gen_ata_desc_sense(qc); ata_gen_ata_desc_sense(qc); } } /* SCSI EH automatically locks door if sdev->locked is * set. Sometimes door lock request continues to * fail, for example, when no media is present. This * creates a loop - SCSI EH issues door lock which * fails and gets invoked again to acquire sense data * for the failed command. * * If door lock fails, always clear sdev->locked to * avoid this infinite loop. */ if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL) qc->dev->sdev->locked = 0; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; qc->scsidone(cmd); qc->scsidone(cmd); ata_qc_free(qc); ata_qc_free(qc); Loading Loading
drivers/scsi/ata_piix.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -567,8 +567,8 @@ static int piix_sata_prereset(struct ata_port *ap) present = 1; present = 1; } } DPRINTK("ata%u: LEAVE, pcs=0x%x present_mask=0x%x\n", DPRINTK("ata%u: LEAVE, pcs=0x%x present=0x%x\n", ap->id, pcs, present_mask); ap->id, pcs, present); if (!present) { if (!present) { ata_port_printk(ap, KERN_INFO, "SATA port has no device.\n"); ata_port_printk(ap, KERN_INFO, "SATA port has no device.\n"); Loading
drivers/scsi/libata-scsi.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -2353,6 +2353,19 @@ static void atapi_qc_complete(struct ata_queued_cmd *qc) ata_gen_ata_desc_sense(qc); ata_gen_ata_desc_sense(qc); } } /* SCSI EH automatically locks door if sdev->locked is * set. Sometimes door lock request continues to * fail, for example, when no media is present. This * creates a loop - SCSI EH issues door lock which * fails and gets invoked again to acquire sense data * for the failed command. * * If door lock fails, always clear sdev->locked to * avoid this infinite loop. */ if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL) qc->dev->sdev->locked = 0; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; qc->scsidone(cmd); qc->scsidone(cmd); ata_qc_free(qc); ata_qc_free(qc); Loading