2018-12-14 18:34:17

by Colin King

[permalink] [raw]
Subject: [PATCH][next] nvmet: fix comparison of a u16 with -1

From: Colin Ian King <[email protected]>

Currently the u16 req->error_loc is being compared to -1 which
will always be false. Fix this by casting -1 to u16 to fix this.

Detected by clang:
warning: result of comparison of constant -1 with expression of
type 'u16' (aka 'unsigned short') is always false
[-Wtautological-constant-out-of-range-compare]

Fixes: 76574f37bf4c ("nvmet: add interface to update error-log page")
Signed-off-by: Colin Ian King <[email protected]>
---
drivers/nvme/target/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index cc81d0231587..b9c219c931eb 100644
--- a/drivers/nvme/target/core.c
+++ b/drivers/nvme/target/core.c
@@ -663,7 +663,7 @@ static void nvmet_set_error(struct nvmet_req *req, u16 status)

req->rsp->status = cpu_to_le16(status << 1);

- if (!ctrl || req->error_loc == -1)
+ if (!ctrl || req->error_loc == (u16)-1)
return;

spin_lock_irqsave(&ctrl->error_lock, flags);
--
2.19.1



2018-12-16 16:38:32

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH][next] nvmet: fix comparison of a u16 with -1

Thanks, applied.

Maybe it might be worth adding a NVME_NO_ERR_LOC defintion to clean
this up a bit more. Chaitanya, can you look into that?

2018-12-17 19:49:20

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH][next] nvmet: fix comparison of a u16 with -1


Will send out a path.

On 12/16/18, 8:26 AM, "Christoph Hellwig" <[email protected]> wrote:

Thanks, applied.

Maybe it might be worth adding a NVME_NO_ERR_LOC defintion to clean
this up a bit more. Chaitanya, can you look into that?