diff --git a/nvme.c b/nvme.c index 3e024b0f12..ce9fb4f7f3 100644 --- a/nvme.c +++ b/nvme.c @@ -5431,10 +5431,11 @@ static int get_register_property(int fd, void **pbar, int offset) err = nvme_get_property(&args); if (nvme_status_equals(err, NVME_STATUS_TYPE_NVME, NVME_SC_INVALID_FIELD)) { - err = 0; value = -1; } else if (err) { nvme_show_error("get-property: %s", nvme_strerror(errno)); + free(bar); + return err; } if (nvme_is_64bit_reg(offset)) @@ -5442,12 +5443,9 @@ static int get_register_property(int fd, void **pbar, int offset) else *(uint32_t *)(bar + offset) = value; - if (err) - free(bar); - else - *pbar = bar; + *pbar = bar; - return err; + return 0; } static int get_register(int argc, char **argv, struct command *cmd, struct plugin *plugin)