]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
scsi: hisi_sas: complete all tasklets prior to host reset
[mirror_ubuntu-artful-kernel.git] / drivers / scsi / hisi_sas / hisi_sas_v2_hw.c
index 90adb59f8a3473dbcdc3f005d9cea88354e997d6..b4823f053d2625783ffabb4f05f40aa4c3706c78 100644 (file)
@@ -3418,6 +3418,7 @@ static int soft_reset_v2_hw(struct hisi_hba *hisi_hba)
 
        interrupt_disable_v2_hw(hisi_hba);
        hisi_sas_write32(hisi_hba, DLVRY_QUEUE_ENABLE, 0x0);
+       hisi_sas_kill_tasklets(hisi_hba);
 
        stop_phys_v2_hw(hisi_hba);
 
@@ -3501,16 +3502,11 @@ static int hisi_sas_v2_remove(struct platform_device *pdev)
 {
        struct sas_ha_struct *sha = platform_get_drvdata(pdev);
        struct hisi_hba *hisi_hba = sha->lldd_ha;
-       int i;
 
        if (timer_pending(&hisi_hba->timer))
                del_timer(&hisi_hba->timer);
 
-       for (i = 0; i < hisi_hba->queue_count; i++) {
-               struct hisi_sas_cq *cq = &hisi_hba->cq[i];
-
-               tasklet_kill(&cq->tasklet);
-       }
+       hisi_sas_kill_tasklets(hisi_hba);
 
        return hisi_sas_remove(pdev);
 }