nvme: host: core: fix precedence of ternary operator
authorIvan Bornyakov <brnkv.i1@gmail.com>
Wed, 23 May 2018 14:56:11 +0000 (17:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Dec 2019 09:47:39 +0000 (10:47 +0100)
commit e9a9853c23c13a37546397b61b270999fd0fb759 upstream.

Ternary operator have lower precedence then bitwise or, so 'cdw10' was
calculated wrong.

Signed-off-by: Ivan Bornyakov <brnkv.i1@gmail.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvme/host/core.c

index 768ac752a6e36facd47b900aae483b82c640bb50..f543b9932c830ba0ad62af837362fd6f7bad1257 100644 (file)
@@ -1331,7 +1331,7 @@ static int nvme_pr_reserve(struct block_device *bdev, u64 key,
 static int nvme_pr_preempt(struct block_device *bdev, u64 old, u64 new,
                enum pr_type type, bool abort)
 {
-       u32 cdw10 = nvme_pr_type(type) << 8 | abort ? 2 : 1;
+       u32 cdw10 = nvme_pr_type(type) << 8 | (abort ? 2 : 1);
        return nvme_pr_command(bdev, cdw10, old, new, nvme_cmd_resv_acquire);
 }
 
@@ -1343,7 +1343,7 @@ static int nvme_pr_clear(struct block_device *bdev, u64 key)
 
 static int nvme_pr_release(struct block_device *bdev, u64 key, enum pr_type type)
 {
-       u32 cdw10 = nvme_pr_type(type) << 8 | key ? 1 << 3 : 0;
+       u32 cdw10 = nvme_pr_type(type) << 8 | (key ? 1 << 3 : 0);
        return nvme_pr_command(bdev, cdw10, key, 0, nvme_cmd_resv_release);
 }