aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJohn Garry <john.garry@huawei.com>2019-01-25 22:22:27 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2019-01-29 01:41:19 -0500
commitc2c7e740577154e755ec373712e32e5864e88315 (patch)
tree68219c721eb3f700f0bbc191d43fd7036cef5871 /drivers/scsi
parentscsi: pcmcia: nsp_cs: Remove unnecessary parentheses (diff)
downloadlinux-dev-c2c7e740577154e755ec373712e32e5864e88315.tar.xz
linux-dev-c2c7e740577154e755ec373712e32e5864e88315.zip
scsi: hisi_sas: No need to check return value of debugfs_create functions
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Signed-off-by: John Garry <john.garry@huawei.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/hisi_sas/hisi_sas.h1
-rw-r--r--drivers/scsi/hisi_sas/hisi_sas_main.c53
2 files changed, 17 insertions, 37 deletions
diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h
index 6a1a5adc0878..b8b1ded77d60 100644
--- a/drivers/scsi/hisi_sas/hisi_sas.h
+++ b/drivers/scsi/hisi_sas/hisi_sas.h
@@ -368,6 +368,7 @@ struct hisi_hba {
struct dentry *debugfs_dir;
struct dentry *debugfs_dump_dentry;
+ bool debugfs_snapshot;
};
/* 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 3d24366ceeef..07959fae37f0 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -1429,8 +1429,7 @@ static int hisi_sas_controller_reset(struct hisi_hba *hisi_hba)
struct Scsi_Host *shost = hisi_hba->shost;
int rc;
- if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct &&
- !hisi_hba->debugfs_dump_dentry)
+ if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct)
queue_work(hisi_hba->wq, &hisi_hba->debugfs_work);
if (!hisi_hba->hw->soft_reset)
@@ -2780,63 +2779,42 @@ static void hisi_sas_debugfs_create_files(struct hisi_hba *hisi_hba)
/* Create dump dir inside device dir */
dump_dentry = debugfs_create_dir("dump", hisi_hba->debugfs_dir);
- if (!dump_dentry)
- goto fail;
-
hisi_hba->debugfs_dump_dentry = dump_dentry;
- if (!debugfs_create_file("global", 0400, dump_dentry, hisi_hba,
- &hisi_sas_debugfs_global_fops))
- goto fail;
+ debugfs_create_file("global", 0400, dump_dentry, hisi_hba,
+ &hisi_sas_debugfs_global_fops);
/* Create port dir and files */
dentry = debugfs_create_dir("port", dump_dentry);
- if (!dentry)
- goto fail;
-
for (p = 0; p < hisi_hba->n_phy; p++) {
snprintf(name, 256, "%d", p);
- if (!debugfs_create_file(name, 0400, dentry,
- &hisi_hba->phy[p],
- &hisi_sas_debugfs_port_fops))
- goto fail;
+
+ debugfs_create_file(name, 0400, dentry, &hisi_hba->phy[p],
+ &hisi_sas_debugfs_port_fops);
}
/* Create CQ dir and files */
dentry = debugfs_create_dir("cq", dump_dentry);
- if (!dentry)
- goto fail;
-
for (c = 0; c < hisi_hba->queue_count; c++) {
snprintf(name, 256, "%d", c);
- if (!debugfs_create_file(name, 0400, dentry,
- &hisi_hba->cq[c],
- &hisi_sas_debugfs_cq_fops))
- goto fail;
+ debugfs_create_file(name, 0400, dentry, &hisi_hba->cq[c],
+ &hisi_sas_debugfs_cq_fops);
}
/* Create DQ dir and files */
dentry = debugfs_create_dir("dq", dump_dentry);
- if (!dentry)
- goto fail;
-
for (d = 0; d < hisi_hba->queue_count; d++) {
snprintf(name, 256, "%d", d);
- if (!debugfs_create_file(name, 0400, dentry,
- &hisi_hba->dq[d],
- &hisi_sas_debugfs_dq_fops))
- goto fail;
+ debugfs_create_file(name, 0400, dentry, &hisi_hba->dq[d],
+ &hisi_sas_debugfs_dq_fops);
}
- if (!debugfs_create_file("iost", 0400, dump_dentry, hisi_hba,
- &hisi_sas_debugfs_iost_fops))
- goto fail;
+ debugfs_create_file("iost", 0400, dump_dentry, hisi_hba,
+ &hisi_sas_debugfs_iost_fops);
return;
-fail:
- debugfs_remove_recursive(hisi_hba->debugfs_dir);
}
static void hisi_sas_debugfs_snapshot_regs(struct hisi_hba *hisi_hba)
@@ -2860,6 +2838,10 @@ void hisi_sas_debugfs_work_handler(struct work_struct *work)
struct hisi_hba *hisi_hba =
container_of(work, struct hisi_hba, debugfs_work);
+ if (hisi_hba->debugfs_snapshot)
+ return;
+ hisi_hba->debugfs_snapshot = true;
+
hisi_sas_debugfs_snapshot_regs(hisi_hba);
}
EXPORT_SYMBOL_GPL(hisi_sas_debugfs_work_handler);
@@ -2874,9 +2856,6 @@ void hisi_sas_debugfs_init(struct hisi_hba *hisi_hba)
hisi_hba->debugfs_dir = debugfs_create_dir(dev_name(dev),
hisi_sas_debugfs_dir);
- if (!hisi_hba->debugfs_dir)
- return;
-
/* Alloc buffer for global */
sz = hisi_hba->hw->debugfs_reg_global->count * 4;
hisi_hba->debugfs_global_reg =