From 1ac3f5d49f0b92f8261e48ac41244d3214ffedff Mon Sep 17 00:00:00 2001 From: Luo Jiaxing Date: Tue, 4 Dec 2018 11:39:14 +0800 Subject: [PATCH] scsi: hisi_sas: Add DFX Feature: Ensure snapshot to be called only one time Ensure snapshot register action can only be executed for one time after enable Signed-off-by: Luo Jiaxing Signed-off-by: John Garry Feature or Bugfix: Bugfix Signed-off-by: luojiaxing Reviewed-by: huangdaode --- drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h index f387d68b28da..29abfa018ff5 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 cf880012d060..bffc8091f7b8 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); -- GitLab