This patch should say: From: Jubin John <jubin.john@xxxxxxxxx> Not sure why it got cut off. Let me know if you want a v2 or if you just want to tack that on yourself. -Denny On Wed, 2016-08-31 at 07:24 -0700, Dennis Dalessandro wrote: > In the set_txreq_header_ahg(), The KDETH Intr bit is obtained from > the > header in the user sdma request using a KDETH_GET shift and mask > macro. > This value is then futher right shifted by 16 causing us to lose the > value i.e it is shifted to zero, leading to the following > smatch warning: > drivers/infiniband/hw/hfi1/user_sdma.c:1482 set_txreq_header_ahg() > warn: mask and shift to zero > > The Intr bit should be left shifted into its correct position in the > KDETH header before the AHG update. > > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Reviewed-by: Mitko Haralanov <mitko.haralanov@xxxxxxxxx> > Reviewed-by: Harish Chegondi <harish.chegondi@xxxxxxxxx> > Signed-off-by: Jubin John <jubin.john@xxxxxxxxx> > Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx> > --- > drivers/infiniband/hw/hfi1/user_sdma.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c > b/drivers/infiniband/hw/hfi1/user_sdma.c > index 0ecf279..1694037 100644 > --- a/drivers/infiniband/hw/hfi1/user_sdma.c > +++ b/drivers/infiniband/hw/hfi1/user_sdma.c > @@ -114,6 +114,8 @@ MODULE_PARM_DESC(sdma_comp_size, "Size of User > SDMA completion ring. Default: 12 > #define KDETH_HCRC_LOWER_SHIFT 24 > #define KDETH_HCRC_LOWER_MASK 0xff > > +#define AHG_KDETH_INTR_SHIFT 12 > + > #define PBC2LRH(x) ((((x) & 0xfff) << 2) - 4) > #define LRH2PBC(x) ((((x) >> 2) + 1) & 0xfff) > > @@ -1480,7 +1482,8 @@ static int set_txreq_header_ahg(struct > user_sdma_request *req, > /* Clear KDETH.SH on last packet */ > if (unlikely(tx->flags & TXREQ_FLAGS_REQ_LAST_PKT)) > { > val |= cpu_to_le16(KDETH_GET(hdr- > >kdeth.ver_tid_offset, > - INTR > ) >> 16); > + INTR) << > + AHG_KDETH_INTR_SHIFT); > val &= cpu_to_le16(~(1U << 13)); > AHG_HEADER_SET(req->ahg, diff, 7, 16, 14, > val); > } else { > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" > in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html��.n��������+%����;��w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f