OSDN Git Service

scsi: lpfc: Add additional debugfs support for CMF
authorJames Smart <jsmart2021@gmail.com>
Sat, 4 Dec 2021 00:26:43 +0000 (16:26 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 7 Dec 2021 03:35:37 +0000 (22:35 -0500)
Dump raw CMF parameter information in debugfs cgn_buffer.

Link: https://lore.kernel.org/r/20211204002644.116455-9-jsmart2021@gmail.com
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_debugfs.c

index ab2550a..21152c9 100644 (file)
@@ -5484,7 +5484,7 @@ lpfc_cgn_buffer_read(struct file *file, char __user *buf, size_t nbytes,
                if (len > (LPFC_CGN_BUF_SIZE - LPFC_DEBUG_OUT_LINE_SZ)) {
                        len += scnprintf(buffer + len, LPFC_CGN_BUF_SIZE - len,
                                         "Truncated . . .\n");
-                       break;
+                       goto out;
                }
                len += scnprintf(buffer + len, LPFC_CGN_BUF_SIZE - len,
                                 "%03x: %08x %08x %08x %08x "
@@ -5495,6 +5495,17 @@ lpfc_cgn_buffer_read(struct file *file, char __user *buf, size_t nbytes,
                cnt += 32;
                ptr += 8;
        }
+       if (len > (LPFC_CGN_BUF_SIZE - LPFC_DEBUG_OUT_LINE_SZ)) {
+               len += scnprintf(buffer + len, LPFC_CGN_BUF_SIZE - len,
+                                "Truncated . . .\n");
+               goto out;
+       }
+       len += scnprintf(buffer + len, LPFC_CGN_BUF_SIZE - len,
+                        "Parameter Data\n");
+       ptr = (uint32_t *)&phba->cgn_p;
+       len += scnprintf(buffer + len, LPFC_CGN_BUF_SIZE - len,
+                        "%08x %08x %08x %08x\n",
+                        *ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3));
 out:
        return simple_read_from_buffer(buf, nbytes, ppos, buffer, len);
 }