]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
Revert "ioctl: return EPROTO when an NVMe status occurred"
authorDaniel Wagner <dwagner@suse.de>
Fri, 12 Apr 2024 11:04:05 +0000 (13:04 +0200)
committerDaniel Wagner <wagi@monom.org>
Fri, 12 Apr 2024 11:17:54 +0000 (13:17 +0200)
This reverts commit 3089da58d2c35b3b700c1eb88540f96cfe0e87ad.

The result field is undefined for many commands and thus can have random values.
Thus we can't blindly evaluate these for all commands.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
src/nvme/ioctl.c
test/ioctl/features.c

index fa7d70d844bf04e0cc255dd9b3b2c2f8ab208b31..ce5a911a2ae3d3bc022466d7de7b236fb95e94aa 100644 (file)
@@ -85,14 +85,8 @@ int nvme_submit_passthru64(int fd, unsigned long ioctl_cmd,
 {
        int err = ioctl(fd, ioctl_cmd, cmd);
 
-       if (err >= 0) {
-               if (result)
-                       *result = cmd->result;
-               if (cmd->result) {
-                       errno = EPROTO;
-                       err = -1;
-               }
-       }
+       if (err >= 0 && result)
+               *result = cmd->result;
        return err;
 }
 
@@ -102,14 +96,8 @@ int nvme_submit_passthru(int fd, unsigned long ioctl_cmd,
 {
        int err = ioctl(fd, ioctl_cmd, cmd);
 
-       if (err >= 0) {
-               if (result)
-                       *result = cmd->result;
-               if (cmd->result) {
-                       errno = EPROTO;
-                       err = -1;
-               }
-       }
+       if (err >= 0 && result)
+               *result = cmd->result;
        return err;
 }
 
index 3c452100720e688b9a6ab8315b9de004e6b7071d..738649799e11cca6fd7db41580050a1031b2a1a4 100644 (file)
@@ -17,7 +17,7 @@
 #define TEST_CDW15 0x15151515
 #define TEST_UUIDX 0b1001110
 #define TEST_FID 0xFE
-#define TEST_RESULT 0x0
+#define TEST_RESULT 0x12345678
 #define TEST_SEL NVME_GET_FEATURES_SEL_SAVED
 #define TEST_SC NVME_SC_INVALID_FIELD