elx: efct: fix pointer error checking in debugfs init

Message ID 20210618233004.83769-1-jsmart2021@gmail.com
State New
Headers show
Series
  • elx: efct: fix pointer error checking in debugfs init
Related show

Commit Message

James Smart June 18, 2021, 11:30 p.m.
debugfs_create_xxx routines, which return pointers, are being checked
for error by looking for NULL values. The routines may return
pointer-munged -Exxx codes, so they should be using IS_ERR() to adapt.

There are two cases:
- the first case is on initial directory creation, which actually
  doesn't need to be checked. So remove the check.
- creation of the sessions subdirectory. Modify this creation to
  create under the initial directory created, and fix failure check.

Fixes: 4df84e846624 ("scsi: elx: efct: Driver initialization routines")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
 drivers/scsi/elx/efct/efct_xport.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Comments

Martin K. Petersen June 19, 2021, 2:41 a.m. | #1
James,

> debugfs_create_xxx routines, which return pointers, are being checked

> for error by looking for NULL values. The routines may return

> pointer-munged -Exxx codes, so they should be using IS_ERR() to adapt.


Applied to 5.14/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

Patch

diff --git a/drivers/scsi/elx/efct/efct_xport.c b/drivers/scsi/elx/efct/efct_xport.c
index 78b6a47599c3..9495cedcc0b9 100644
--- a/drivers/scsi/elx/efct/efct_xport.c
+++ b/drivers/scsi/elx/efct/efct_xport.c
@@ -43,16 +43,13 @@  efct_xport_init_debugfs(struct efct *efct)
 	if (!efct_debugfs_root) {
 		efct_debugfs_root = debugfs_create_dir("efct", NULL);
 		atomic_set(&efct_debugfs_count, 0);
-		if (!efct_debugfs_root) {
-			efc_log_err(efct, "failed to create debugfs entry\n");
-			goto debugfs_fail;
-		}
 	}
 
 	/* Create a directory for sessions in root */
 	if (!efct->sess_debugfs_dir) {
-		efct->sess_debugfs_dir = debugfs_create_dir("sessions", NULL);
-		if (!efct->sess_debugfs_dir) {
+		efct->sess_debugfs_dir = debugfs_create_dir("sessions",
+							efct_debugfs_root);
+		if (IS_ERR(efct->sess_debugfs_dir)) {
 			efc_log_err(efct,
 				    "failed to create debugfs entry for sessions\n");
 			goto debugfs_fail;