]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme-print: use NVME_GET in sanitize log
authorFrancis Pravin <francis.p@samsung.com>
Thu, 7 Nov 2024 09:29:04 +0000 (14:59 +0530)
committerDaniel Wagner <wagi@monom.org>
Fri, 8 Nov 2024 10:35:00 +0000 (11:35 +0100)
Used NVME_GET macro in sanitize log. Also, updated the print statement
as per NVM Express Base Specification Revision 2.1.

Signed-off-by: Francis Pravin <francis.p@samsung.com>
nvme-print-json.c
nvme-print-stdout.c

index 412eb20caf2ffb4612bc95198f047957c49d099a..8239818404c48d6eb57a40db05d8ab1a26801837 100644 (file)
@@ -1375,19 +1375,16 @@ static void json_sanitize_log(struct nvme_sanitize_log_page *sanitize_log,
        struct json_object *r = json_create_object();
        struct json_object *dev = json_create_object();
        struct json_object *sstat = json_create_object();
+       __u16 status = le16_to_cpu(sanitize_log->sstat);
        const char *status_str;
        char str[128];
-       __u16 status = le16_to_cpu(sanitize_log->sstat);
 
        obj_add_int(dev, "sprog", le16_to_cpu(sanitize_log->sprog));
-       obj_add_int(sstat, "global_erased", (status & NVME_SANITIZE_SSTAT_GLOBAL_DATA_ERASED) >> 8);
-       obj_add_int(sstat, "no_cmplted_passes",
-                   (status >> NVME_SANITIZE_SSTAT_COMPLETED_PASSES_SHIFT) &
-                   NVME_SANITIZE_SSTAT_COMPLETED_PASSES_MASK);
+       obj_add_int(sstat, "global_erased", NVME_GET(status, SANITIZE_SSTAT_GLOBAL_DATA_ERASED));
+       obj_add_int(sstat, "no_cmplted_passes", NVME_GET(status, SANITIZE_SSTAT_COMPLETED_PASSES));
 
        status_str = nvme_sstat_status_to_string(status);
-       sprintf(str, "(%d) %s", status & NVME_SANITIZE_SSTAT_STATUS_MASK,
-               status_str);
+       sprintf(str, "(%d) %s", NVME_GET(status, SANITIZE_SSTAT_STATUS), status_str);
        obj_add_str(sstat, "status", str);
 
        obj_add_obj(dev, "sstat", sstat);
index 1fdcb9be240a4faaf98495833a4d09875cc603ab..ad7483dadee0ef7e6a86ef8b363608dfcc900955 100644 (file)
@@ -4187,23 +4187,21 @@ static void stdout_sanitize_log_sprog(__u32 sprog)
 static void stdout_sanitize_log_sstat(__u16 status)
 {
        const char *str = nvme_sstat_status_to_string(status);
+       __u16 gde;
 
-       printf("\t[2:0]\t%s\n", str);
-       str = "Number of completed passes if most recent operation was overwrite";
-       printf("\t[7:3]\t%s:\t%u\n", str,
-               (status >> NVME_SANITIZE_SSTAT_COMPLETED_PASSES_SHIFT) &
-                       NVME_SANITIZE_SSTAT_COMPLETED_PASSES_MASK);
-
-       printf("\t  [8]\t");
-       if (status & NVME_SANITIZE_SSTAT_GLOBAL_DATA_ERASED)
-               str = "Global Data Erased set: no NS LB in the NVM subsystem "\
-                       "has been written to and no PMR in the NVM subsystem "\
-                       "has been enabled";
+       printf("  [2:0] : Sanitize Operation Status  : %#x\t%s\n",
+               NVME_GET(status, SANITIZE_SSTAT_STATUS), str);
+       printf("  [7:3] : Overwrite Passes Completed : %u\n",
+               NVME_GET(status, SANITIZE_SSTAT_COMPLETED_PASSES));
+
+       gde = NVME_GET(status, SANITIZE_SSTAT_GLOBAL_DATA_ERASED);
+       if (gde)
+               str = "No user data has been written in the NVM subsystem and"\
+                      " no PMR has been enabled in the NVM subsystem";
        else
-               str = "Global Data Erased cleared: a NS LB in the NVM "\
-                       "subsystem has been written to or a PMR in the NVM "\
-                       "subsystem has been enabled";
-       printf("%s\n", str);
+               str = "User data has been written in the NVM subsystem or"\
+                      " PMR has been enabled in the NVM subsystem";
+       printf("  [8:8] : Global Data Erased         : %#x\t%s\n", gde, str);
 }
 
 static void stdout_estimate_sanitize_time(const char *text, uint32_t value)