OSDN Git Service

IB/nes: Fix incorrect type in assignment
authorLeon Romanovsky <leon@kernel.org>
Sat, 22 Apr 2017 14:28:52 +0000 (17:28 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 28 Apr 2017 17:11:43 +0000 (13:11 -0400)
Fix mismatch between types, wqe_words are in le32 format, while opcode
in CPU format.

The following sparse warnings are helped to find it:

drivers/infiniband/hw/nes/nes_hw.c:3058:24: warning: incorrect type in assignment (different base types)
drivers/infiniband/hw/nes/nes_hw.c:3058:24:    expected unsigned int [unsigned] [assigned] [usertype] opcode
drivers/infiniband/hw/nes/nes_hw.c:3058:24:    got restricted __le32 <noident>

CC: Faisal Latif <faisal.latif@intel.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/nes/nes_hw.c

index 19acd13..4bbff7a 100644 (file)
@@ -3055,7 +3055,7 @@ static void nes_cqp_ce_handler(struct nes_device *nesdev, struct nes_hw_cq *cq)
                memcpy(cqp_wqe, &cqp_request->cqp_wqe, sizeof(*cqp_wqe));
                barrier();
 
-               opcode = cqp_wqe->wqe_words[NES_CQP_WQE_OPCODE_IDX];
+               opcode = le32_to_cpu(cqp_wqe->wqe_words[NES_CQP_WQE_OPCODE_IDX]);
                if ((opcode & NES_CQP_OPCODE_MASK) == NES_CQP_DOWNLOAD_SEGMENT)
                        ctx_index = NES_CQP_WQE_DL_COMP_CTX_LOW_IDX;
                else