]> err.no Git - linux-2.6/blobdiff - drivers/scsi/libsas/sas_ata.c
[SCSI] libsas: fix sense_buffer overrun
[linux-2.6] / drivers / scsi / libsas / sas_ata.c
index 5e573efcf0a70f90232ac916aa8897f85c5f713b..adc47d481f97655efd0f34cc278e4ee3931b98b9 100644 (file)
@@ -249,17 +249,17 @@ static void sas_ata_phy_reset(struct ata_port *ap)
        switch (dev->sata_dev.command_set) {
                case ATA_COMMAND_SET:
                        SAS_DPRINTK("%s: Found ATA device.\n", __FUNCTION__);
-                       ap->device[0].class = ATA_DEV_ATA;
+                       ap->link.device[0].class = ATA_DEV_ATA;
                        break;
                case ATAPI_COMMAND_SET:
                        SAS_DPRINTK("%s: Found ATAPI device.\n", __FUNCTION__);
-                       ap->device[0].class = ATA_DEV_ATAPI;
+                       ap->link.device[0].class = ATA_DEV_ATAPI;
                        break;
                default:
                        SAS_DPRINTK("%s: Unknown SATA command set: %d.\n",
                                    __FUNCTION__,
                                    dev->sata_dev.command_set);
-                       ap->device[0].class = ATA_DEV_UNKNOWN;
+                       ap->link.device[0].class = ATA_DEV_UNKNOWN;
                        break;
        }
 
@@ -317,7 +317,7 @@ static int sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in,
                        dev->sata_dev.serror = val;
                        break;
                case SCR_ACTIVE:
-                       dev->sata_dev.ap->sactive = val;
+                       dev->sata_dev.ap->link.sactive = val;
                        break;
                default:
                        return -EINVAL;
@@ -342,7 +342,7 @@ static int sas_ata_scr_read(struct ata_port *ap, unsigned int sc_reg_in,
                        *val = dev->sata_dev.serror;
                        return 0;
                case SCR_ACTIVE:
-                       *val = dev->sata_dev.ap->sactive;
+                       *val = dev->sata_dev.ap->link.sactive;
                        return 0;
                default:
                        return -EINVAL;
@@ -350,7 +350,6 @@ static int sas_ata_scr_read(struct ata_port *ap, unsigned int sc_reg_in,
 }
 
 static struct ata_port_operations sas_sata_ops = {
-       .port_disable           = ata_port_disable,
        .check_status           = sas_ata_check_status,
        .check_altstatus        = sas_ata_check_status,
        .dev_select             = ata_noop_dev_select,
@@ -501,7 +500,7 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
                        goto ex_err;
                }
                wait_for_completion(&task->completion);
-               res = -ETASK;
+               res = -ECOMM;
                if (task->task_state_flags & SAS_TASK_STATE_ABORTED) {
                        int res2;
                        SAS_DPRINTK("task aborted, flags:0x%x\n",