Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions nvme-print-json.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
28 changes: 13 additions & 15 deletions nvme-print-stdout.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down