]> err.no Git - linux-2.6/commitdiff
libata: minor cleanups
authorJeff Garzik <jgarzik@pobox.com>
Wed, 5 Oct 2005 22:39:23 +0000 (18:39 -0400)
committerJeff Garzik <jgarzik@pobox.com>
Wed, 5 Oct 2005 22:39:23 +0000 (18:39 -0400)
A few code shuffles, to make merging future code easier.

Add (DRIVER_SENSE << 24) to certain result codes, as noted by Douglas
Gilbert.

drivers/scsi/libata-core.c
drivers/scsi/libata-scsi.c

index f731bbdd4236b1b011dcb81cd2a971354ded239e..d568914c4344c061c4c52670cd705a17c87a70fa 100644 (file)
@@ -3131,14 +3131,14 @@ void ata_eng_timeout(struct ata_port *ap)
        DPRINTK("ENTER\n");
 
        qc = ata_qc_from_tag(ap, ap->active_tag);
-       if (!qc) {
+       if (qc)
+               ata_qc_timeout(qc);
+       else {
                printk(KERN_ERR "ata%u: BUG: timeout without command\n",
                       ap->id);
                goto out;
        }
 
-       ata_qc_timeout(qc);
-
 out:
        DPRINTK("EXIT\n");
 }
index c58a7a19780f43a084a511cc79c9a7e6301d8e71..1c3a10fb3c44fa79d3732094fbe257c3edb619f5 100644 (file)
@@ -225,7 +225,7 @@ void ata_to_sense_error(struct ata_queued_cmd *qc, u8 drv_stat)
        };
        int i = 0;
 
-       cmd->result = SAM_STAT_CHECK_CONDITION;
+       cmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
 
        /*
         *      Is this an error we can process/parse
@@ -1468,7 +1468,7 @@ unsigned int ata_scsiop_report_luns(struct ata_scsi_args *args, u8 *rbuf,
 void ata_scsi_badcmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *), u8 asc, u8 ascq)
 {
        DPRINTK("ENTER\n");
-       cmd->result = SAM_STAT_CHECK_CONDITION;
+       cmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
 
        cmd->sense_buffer[0] = 0x70;
        cmd->sense_buffer[2] = ILLEGAL_REQUEST;
@@ -1529,8 +1529,11 @@ static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat)
 {
        struct scsi_cmnd *cmd = qc->scsicmd;
 
+       VPRINTK("ENTER, drv_stat == 0x%x\n", drv_stat);
+
        if (unlikely(drv_stat & (ATA_BUSY | ATA_DRQ)))
                ata_to_sense_error(qc, drv_stat);
+
        else if (unlikely(drv_stat & ATA_ERR)) {
                DPRINTK("request check condition\n");
 
@@ -1546,7 +1549,9 @@ static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat)
                qc->scsidone(cmd);
 
                return 1;
-       } else {
+       }
+
+       else {
                u8 *scsicmd = cmd->cmnd;
 
                if (scsicmd[0] == INQUIRY) {
@@ -1578,7 +1583,6 @@ static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat)
        }
 
        qc->scsidone(cmd);
-
        return 0;
 }
 /**