45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
commit 5b7506198a6872764a51e32363e219916e1e592e
|
|
Author: Minwoo Im <minwoo.im@samsung.com>
|
|
Date: Wed Apr 24 01:48:58 2019 +0100
|
|
|
|
ioctl: Fix wrong return case of get_property
|
|
|
|
If get_property_helper() succeeds in the first time, and then fails in
|
|
the next time, then the ret value will not be updated to an error value.
|
|
This patch removes 'ret' variable to make 'err' to return being updated
|
|
everytime get_property_helper() invoked.
|
|
|
|
Signed-off-by: Minwoo Im <minwoo.im@samsung.com>
|
|
|
|
diff --git a/nvme-ioctl.c b/nvme-ioctl.c
|
|
index 16fdc66..75bf9fa 100644
|
|
--- a/nvme-ioctl.c
|
|
+++ b/nvme-ioctl.c
|
|
@@ -612,7 +612,7 @@ int nvme_get_property(int fd, int offset, uint64_t *value)
|
|
int nvme_get_properties(int fd, void **pbar)
|
|
{
|
|
int offset, advance;
|
|
- int err, ret = -EINVAL;
|
|
+ int err;
|
|
int size = getpagesize();
|
|
|
|
*pbar = malloc(size);
|
|
@@ -624,15 +624,13 @@ int nvme_get_properties(int fd, void **pbar)
|
|
memset(*pbar, 0xff, size);
|
|
for (offset = NVME_REG_CAP; offset <= NVME_REG_CMBSZ; offset += advance) {
|
|
err = get_property_helper(fd, offset, *pbar + offset, &advance);
|
|
- if (!err)
|
|
- ret = 0;
|
|
- else {
|
|
+ if (err) {
|
|
free(*pbar);
|
|
break;
|
|
}
|
|
}
|
|
|
|
- return ret;
|
|
+ return err;
|
|
}
|
|
|
|
int nvme_set_property(int fd, int offset, int value)
|