All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scsi: megaraid_sas: Fix debugfs setup error handling
@ 2026-10-07 14:17 Lei Chen
  2026-10-07 14:28 ` sashiko-bot
  2026-10-08  2:34 ` [PATCH v2] scsi: megaraid_sas: Simplify debugfs setup Lei Chen
  0 siblings, 2 replies; 3+ messages in thread
From: Lei Chen @ 2026-10-07 14:17 UTC (permalink / raw)
  To: kashyap.desai, sumit.saxena, shivasharan.srikanteshwara,
	chandrakanth.patil
  Cc: James.Bottomley, mkp, megaraidlinux.pdl, linux-scsi, linux-kernel,
	lei.chen

debugfs_create_dir() and debugfs_create_file() return error pointers on
failure, but megasas_setup_debugfs() only checks for NULL. As a result,
setup continues after directory creation fails, and a failure to create
raidmap_dump leaves the per-adapter directory behind.

Skip per-adapter setup if the driver debugfs root is unavailable, and
use IS_ERR_OR_NULL() to check directory and file creation results so
that the existing error paths also handle error pointers.

With the corrected error check, file creation failure removes the
per-adapter directory. Clear the stored directory pointer as well so
teardown does not attempt to remove the freed dentry again.

Fixes: ba53572bf02d ("scsi: megaraid_sas: Export RAID map through debugfs")
Signed-off-by: Lei Chen <lei.chen@smartx.com>
---
 drivers/scsi/megaraid/megaraid_sas_debugfs.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/megaraid/megaraid_sas_debugfs.c b/drivers/scsi/megaraid/megaraid_sas_debugfs.c
index 81698cd83f5a..556e01fc25e8 100644
--- a/drivers/scsi/megaraid/megaraid_sas_debugfs.c
+++ b/drivers/scsi/megaraid/megaraid_sas_debugfs.c
@@ -126,13 +126,16 @@ megasas_setup_debugfs(struct megasas_instance *instance)
 
 	fusion = instance->ctrl_context;
 
+	if (IS_ERR_OR_NULL(megasas_debugfs_root))
+		return;
+
 	if (fusion) {
 		snprintf(name, sizeof(name),
 			 "scsi_host%d", instance->host->host_no);
 		if (!instance->debugfs_root) {
 			instance->debugfs_root =
 				debugfs_create_dir(name, megasas_debugfs_root);
-			if (!instance->debugfs_root) {
+			if (IS_ERR_OR_NULL(instance->debugfs_root)) {
 				dev_err(&instance->pdev->dev,
 					"Cannot create per adapter debugfs directory\n");
 				return;
@@ -144,10 +147,11 @@ megasas_setup_debugfs(struct megasas_instance *instance)
 			debugfs_create_file(name, S_IRUGO,
 					    instance->debugfs_root, instance,
 					    &megasas_debugfs_raidmap_fops);
-		if (!instance->raidmap_dump) {
+		if (IS_ERR_OR_NULL(instance->raidmap_dump)) {
 			dev_err(&instance->pdev->dev,
 				"Cannot create raidmap debugfs file\n");
 			debugfs_remove(instance->debugfs_root);
+			instance->debugfs_root = NULL;
 			return;
 		}
 	}
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-10-08  2:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-07 14:17 [PATCH] scsi: megaraid_sas: Fix debugfs setup error handling Lei Chen
2026-10-07 14:28 ` sashiko-bot
2026-10-08  2:34 ` [PATCH v2] scsi: megaraid_sas: Simplify debugfs setup Lei Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.