scsi: Revert "scsi: hisi_sas: Drain bcast events in hisi_sas_rescan_topology()"
authorJie Zhan <zhanjie9@hisilicon.com>
Fri, 18 Nov 2022 08:37:10 +0000 (16:37 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 26 Nov 2022 02:26:02 +0000 (02:26 +0000)
This reverts commit 11ff0c98fca35df16c84d4eee52008faecaf10a6.

Draining or flushing events in hisi_sas_rescan_topology() can hang the
driver, typically with phy up or phy down events being processed,
i.e. sas_porte_bytes_dmaed() or sas_phye_loss_of_signal().

Signed-off-by: Jie Zhan <zhanjie9@hisilicon.com>
Link: https://lore.kernel.org/r/20221118083714.4034612-2-zhanjie9@hisilicon.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_main.c

index 54860d2524667d9f7c854e8ac2ea8440c0960d4e..4527ac266bb6166e992c6cd10ca0f4b0b902911f 100644 (file)
@@ -1323,7 +1323,6 @@ static void hisi_sas_refresh_port_id(struct hisi_hba *hisi_hba)
 
 static void hisi_sas_rescan_topology(struct hisi_hba *hisi_hba, u32 state)
 {
-       struct sas_ha_struct *sas_ha = &hisi_hba->sha;
        struct asd_sas_port *_sas_port = NULL;
        int phy_no;
 
@@ -1352,12 +1351,6 @@ static void hisi_sas_rescan_topology(struct hisi_hba *hisi_hba, u32 state)
                        hisi_sas_phy_down(hisi_hba, phy_no, 0, GFP_KERNEL);
                }
        }
-       /*
-        * Ensure any bcast events are processed prior to calling async nexus
-        * reset calls from hisi_sas_clear_nexus_ha() ->
-        * hisi_sas_async_I_T_nexus_reset()
-        */
-       sas_drain_work(sas_ha);
 }
 
 static void hisi_sas_reset_init_all_devices(struct hisi_hba *hisi_hba)