]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme-print: print phase tag field separately in error-log fields
authorGollu Appalanaidu <anaidu.gollu@samsung.com>
Thu, 25 Mar 2021 17:58:30 +0000 (23:28 +0530)
committerKeith Busch <kbusch@kernel.org>
Mon, 5 Apr 2021 20:51:12 +0000 (14:51 -0600)
Status Field in error-log 16 bits, 15 bits from q to 15 are represents
status field and 0th bit is phase tag, print phase tag seperately, in
1.4b spec its been clearly called out.

Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
nvme-print.c

index e2b05c77cc15ac18fd6e7f0e2ecf943a615a696d..211b64eaebfa6007d95998662218143de95a5c4a 100755 (executable)
@@ -370,7 +370,9 @@ static void json_error_log(struct nvme_error_log_page *err_log, int entries)
                json_object_add_value_int(error, "cmdid",
                        le16_to_cpu(err_log[i].cmdid));
                json_object_add_value_int(error, "status_field",
-                       le16_to_cpu(err_log[i].status_field));
+                       le16_to_cpu(err_log[i].status_field >> 0x1));
+               json_object_add_value_int(error, "phase_tag",
+                       le16_to_cpu(err_log[i].status_field & 0x1));
                json_object_add_value_int(error, "parm_error_location",
                        le16_to_cpu(err_log[i].parm_error_location));
                json_object_add_value_uint(error, "lba",
@@ -4529,9 +4531,11 @@ void nvme_show_error_log(struct nvme_error_log_page *err_log, int entries,
                        le64_to_cpu(err_log[i].error_count));
                printf("sqid            : %d\n", err_log[i].sqid);
                printf("cmdid           : %#x\n", err_log[i].cmdid);
-               printf("status_field    : %#x(%s)\n", err_log[i].status_field,
+               printf("status_field    : %#x(%s)\n", err_log[i].status_field >> 0x1,
                        nvme_status_to_string(
                                le16_to_cpu(err_log[i].status_field) >> 1));
+               printf("phase_tag       : %#x\n",
+                       le16_to_cpu(err_log[i].status_field & 0x1));
                printf("parm_err_loc    : %#x\n",
                        err_log[i].parm_error_location);
                printf("lba             : %#"PRIx64"\n",