diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h index f387d68b28da17946fb05874daba89e7398fa0d9..29abfa018ff55ea1d21c161e019906112cc0d550 100644 --- a/drivers/scsi/hisi_sas/hisi_sas.h +++ b/drivers/scsi/hisi_sas/hisi_sas.h @@ -369,6 +369,7 @@ struct hisi_hba { struct hisi_sas_itct *itct_debugfs; struct dentry *debugfs_dir; + struct dentry *dump_dentry; }; /* Generic HW DMA host memory structures */ diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index cf880012d06082cc0f06c49b7f2ca0e9fbfb1c5a..bffc8091f7b8f9be1c16aaa1f6d21b4d449de03a 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -1517,8 +1517,9 @@ static int hisi_sas_controller_reset(struct hisi_hba *hisi_hba) struct device *dev = hisi_hba->dev; struct Scsi_Host *shost = hisi_hba->shost; int rc; - - if (hisi_sas_debugfs_enable && hisi_hba->itct_debugfs) + if (hisi_sas_debugfs_enable && + hisi_hba->itct_debugfs && + !hisi_hba->dump_dentry) queue_work(hisi_hba->wq, &hisi_hba->dfx_work); if (!hisi_hba->hw->soft_reset) @@ -3018,6 +3019,7 @@ static void hisi_sas_create_folder_structure(struct hisi_hba *hisi_hba) &hisi_sas_debugfs_itct_fops)) goto fail; + hisi_hba->dump_dentry = dump_dentry; return; fail: debugfs_remove_recursive(hisi_hba->debugfs_dir);