]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
Print ProductName found even if subvendor/subdevice is unknown
authorBrandon Paupore <brandon.paupore@wdc.com>
Tue, 17 Aug 2021 17:02:28 +0000 (12:02 -0500)
committerDaniel Wagner <dwagner@suse.de>
Mon, 15 Nov 2021 11:06:29 +0000 (12:06 +0100)
Signed-off-by: Brandon Paupore <brandon.paupore@wdc.com>
nvme-models.c

index 9b5077d0cdbb066a5578d68e74e4c2de5150e306..8fd815202cd8b93488c89b7d707806e230a8a2c2 100644 (file)
@@ -76,22 +76,34 @@ static char *locate_info(char *data, bool is_inner, bool is_class)
 static void format_and_print(char *save)
 {
 
-       if (!class_mid)
-               snprintf(save, 1024, "%s %s %s",
-                      locate_info(device_top, false, false),
-                      locate_info(device_mid, false, false),
-                      locate_info(device_final, true, false));
-       else
-               snprintf(save, 1024, "%s: %s %s %s",
-                        locate_info(class_mid, false, true),
-                        locate_info(device_top, false, false),
-                        locate_info(device_mid, false, false),
-                        locate_info(device_final, true, false));
+       if (!class_mid) {
+               if (device_final)
+                       snprintf(save, 1024, "%s %s %s",
+                                locate_info(device_top, false, false),
+                                locate_info(device_mid, false, false),
+                                locate_info(device_final, true, false));
+               else
+                       snprintf(save, 1024, "%s %s",
+                                locate_info(device_top, false, false),
+                                locate_info(device_mid, false, false));
+       } else {
+               if (device_final)
+                       snprintf(save, 1024, "%s: %s %s %s",
+                                locate_info(class_mid, false, true),
+                                locate_info(device_top, false, false),
+                                locate_info(device_mid, false, false),
+                                locate_info(device_final, true, false));
+               else
+                       snprintf(save, 1024, "%s: %s %s",
+                                locate_info(class_mid, false, true),
+                                locate_info(device_top, false, false),
+                                locate_info(device_mid, false, false));
+       }
 }
 
 static void format_all(char *save, char *vendor, char *device)
 {
-       if (device_top && device_mid && device_final)
+       if (device_top && device_mid)
                format_and_print(save);
 
        else if (device_top && !device_mid && class_mid)