summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/nvme/nvme.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/nvme/nvme.c b/usr/src/uts/common/io/nvme/nvme.c
index 77117adda0..c2aeda2e8a 100644
--- a/usr/src/uts/common/io/nvme/nvme.c
+++ b/usr/src/uts/common/io/nvme/nvme.c
@@ -4662,7 +4662,7 @@ nvme_ioctl_get_features(nvme_t *nvme, int nsid, nvme_ioctl_t *nioc,
return (EINVAL);
}
} else if (res != 0) {
- return (EINVAL);
+ return (ENOTSUP);
}
break;
@@ -4777,7 +4777,7 @@ nvme_ioctl_format(nvme_t *nvme, int nsid, nvme_ioctl_t *nioc, int mode,
* Check whether the FORMAT NVM command is supported.
*/
if (nvme->n_idctl->id_oacs.oa_format == 0)
- return (EINVAL);
+ return (ENOTSUP);
/*
* Don't allow format or secure erase of individual namespace if that
@@ -4908,6 +4908,9 @@ nvme_ioctl_firmware_download(nvme_t *nvme, int nsid, nvme_ioctl_t *nioc,
if ((mode & FWRITE) == 0 || secpolicy_sys_config(cred_p, B_FALSE) != 0)
return (EPERM);
+ if (nvme->n_idctl->id_oacs.oa_firmware == 0)
+ return (ENOTSUP);
+
if (nsid != 0)
return (EINVAL);
@@ -4989,6 +4992,9 @@ nvme_ioctl_firmware_commit(nvme_t *nvme, int nsid, nvme_ioctl_t *nioc,
if ((mode & FWRITE) == 0 || secpolicy_sys_config(cred_p, B_FALSE) != 0)
return (EPERM);
+ if (nvme->n_idctl->id_oacs.oa_firmware == 0)
+ return (ENOTSUP);
+
if (nsid != 0)
return (EINVAL);