Merge tag 'maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[cascardo/linux.git] / drivers / scsi / mvsas / mv_sas.c
index a4884a5..fd3b283 100644 (file)
@@ -308,7 +308,7 @@ int mvs_scan_finished(struct Scsi_Host *shost, unsigned long time)
        if (mvs_prv->scan_finished == 0)
                return 0;
 
-       scsi_flush_work(shost);
+       sas_drain_work(sha);
        return 1;
 }
 
@@ -893,9 +893,6 @@ static int mvs_task_exec(struct sas_task *task, const int num, gfp_t gfp_flags,
 
        mvi = ((struct mvs_device *)task->dev->lldd_dev)->mvi_info;
 
-       if ((dev->dev_type == SATA_DEV) && (dev->sata_dev.ap != NULL))
-               spin_unlock_irq(dev->sata_dev.ap->lock);
-
        spin_lock_irqsave(&mvi->lock, flags);
        rc = mvs_task_prep(task, mvi, is_tmf, tmf, &pass);
        if (rc)
@@ -906,9 +903,6 @@ static int mvs_task_exec(struct sas_task *task, const int num, gfp_t gfp_flags,
                                (MVS_CHIP_SLOT_SZ - 1));
        spin_unlock_irqrestore(&mvi->lock, flags);
 
-       if ((dev->dev_type == SATA_DEV) && (dev->sata_dev.ap != NULL))
-               spin_lock_irq(dev->sata_dev.ap->lock);
-
        return rc;
 }
 
@@ -1480,10 +1474,11 @@ static int mvs_debug_issue_ssp_tmf(struct domain_device *dev,
 static int mvs_debug_I_T_nexus_reset(struct domain_device *dev)
 {
        int rc;
-       struct sas_phy *phy = sas_find_local_phy(dev);
+       struct sas_phy *phy = sas_get_local_phy(dev);
        int reset_type = (dev->dev_type == SATA_DEV ||
                        (dev->tproto & SAS_PROTOCOL_STP)) ? 0 : 1;
        rc = sas_phy_reset(phy, reset_type);
+       sas_put_local_phy(phy);
        msleep(2000);
        return rc;
 }
@@ -1885,11 +1880,11 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
        case SAS_PROTOCOL_SMP: {
                        struct scatterlist *sg_resp = &task->smp_task.smp_resp;
                        tstat->stat = SAM_STAT_GOOD;
-                       to = kmap_atomic(sg_page(sg_resp), KM_IRQ0);
+                       to = kmap_atomic(sg_page(sg_resp));
                        memcpy(to + sg_resp->offset,
                                slot->response + sizeof(struct mvs_err_info),
                                sg_dma_len(sg_resp));
-                       kunmap_atomic(to, KM_IRQ0);
+                       kunmap_atomic(to);
                        break;
                }