]> err.no Git - linux-2.6/blobdiff - drivers/ata/libata-eh.c
libata: fix off-by-one in error categorization
[linux-2.6] / drivers / ata / libata-eh.c
index d7d5a5ae04ef6f8a9134c963f667ee0c5a22c099..4e31071acc02b15f270a2f76ea752b4a4896f822 100644 (file)
@@ -61,12 +61,11 @@ enum {
        ATA_ECAT_ATA_BUS                = 1,
        ATA_ECAT_TOUT_HSM               = 2,
        ATA_ECAT_UNK_DEV                = 3,
-       ATA_ECAT_DUBIOUS_ATA_BUS        = 4,
-       ATA_ECAT_DUBIOUS_TOUT_HSM       = 5,
-       ATA_ECAT_DUBIOUS_UNK_DEV        = 6,
-       ATA_ECAT_NR                     = 7,
-
-       ATA_ECAT_DUBIOUS_BASE           = ATA_ECAT_DUBIOUS_ATA_BUS,
+       ATA_ECAT_DUBIOUS_NONE           = 4,
+       ATA_ECAT_DUBIOUS_ATA_BUS        = 5,
+       ATA_ECAT_DUBIOUS_TOUT_HSM       = 6,
+       ATA_ECAT_DUBIOUS_UNK_DEV        = 7,
+       ATA_ECAT_NR                     = 8,
 };
 
 /* Waiting in ->prereset can never be reliable.  It's sometimes nice
@@ -231,7 +230,8 @@ void ata_port_pbar_desc(struct ata_port *ap, int bar, ssize_t offset,
        if (offset < 0)
                ata_port_desc(ap, "%s %s%llu@0x%llx", name, type, len, start);
        else
-               ata_port_desc(ap, "%s 0x%llx", name, start + offset);
+               ata_port_desc(ap, "%s 0x%llx", name,
+                               start + (unsigned long long)offset);
 }
 
 #endif /* CONFIG_PCI */
@@ -1298,10 +1298,10 @@ static unsigned int atapi_eh_request_sense(struct ata_queued_cmd *qc)
 
        /* is it pointless to prefer PIO for "safety reasons"? */
        if (ap->flags & ATA_FLAG_PIO_DMA) {
-               tf.protocol = ATA_PROT_ATAPI_DMA;
+               tf.protocol = ATAPI_PROT_DMA;
                tf.feature |= ATAPI_PKT_DMA;
        } else {
-               tf.protocol = ATA_PROT_ATAPI;
+               tf.protocol = ATAPI_PROT_PIO;
                tf.lbam = SCSI_SENSE_BUFFERSIZE;
                tf.lbah = 0;
        }
@@ -1498,7 +1498,7 @@ static int ata_eh_categorize_error(unsigned int eflags, unsigned int err_mask,
                *xfer_ok = 1;
 
        if (!*xfer_ok)
-               base = ATA_ECAT_DUBIOUS_BASE;
+               base = ATA_ECAT_DUBIOUS_NONE;
 
        if (err_mask & AC_ERR_ATA_BUS)
                return base + ATA_ECAT_ATA_BUS;
@@ -1978,8 +1978,8 @@ static void ata_eh_link_report(struct ata_link *link)
                                [ATA_PROT_PIO]          = "pio",
                                [ATA_PROT_DMA]          = "dma",
                                [ATA_PROT_NCQ]          = "ncq",
-                               [ATA_PROT_ATAPI]        = "pio",
-                               [ATA_PROT_ATAPI_DMA]    = "dma",
+                               [ATAPI_PROT_PIO]        = "pio",
+                               [ATAPI_PROT_DMA]        = "dma",
                        };
 
                        snprintf(data_buf, sizeof(data_buf), " %s %u %s",