public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* re: IB/rdmavt: Add create queue pair functionality
@ 2016-03-22 20:01 Dan Carpenter
  2016-03-23 15:33 ` Marciniszyn, Mike
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2016-03-22 20:01 UTC (permalink / raw)
  To: dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA

Hello Dennis Dalessandro,

The patch 515667f8f8b4: "IB/rdmavt: Add create queue pair
functionality" from Jan 22, 2016, leads to the following static
checker warning:

	drivers/infiniband/sw/rdmavt/qp.c:835 rvt_create_qp()
	warn: odd binop '0x4 & 0xe0'

drivers/infiniband/sw/rdmavt/qp.c
   823          /*
   824           * We have our QP and its good, now keep track of what types of opcodes
   825           * can be processed on this QP. We do this by keeping track of what the
   826           * 3 high order bits of the opcode are.
   827           */
   828          switch (init_attr->qp_type) {
   829          case IB_QPT_SMI:
   830          case IB_QPT_GSI:
   831          case IB_QPT_UD:
   832                  qp->allowed_ops = IB_OPCODE_UD_SEND_ONLY & RVT_OPCODE_QP_MASK;
   833                  break;
   834          case IB_QPT_RC:
   835                  qp->allowed_ops = IB_OPCODE_RC_SEND_ONLY & RVT_OPCODE_QP_MASK;
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                          0x4                    & 0xE0
is zero.  I couldn't figure out where IB_OPCODE_RC_SEND_ONLY is
defined but presumably Smatch is correct that it's 4.

   836                  break;
   837          case IB_QPT_UC:
   838                  qp->allowed_ops = IB_OPCODE_UC_SEND_ONLY & RVT_OPCODE_QP_MASK;
   839                  break;
   840          default:
   841                  ret = ERR_PTR(-EINVAL);
   842                  goto bail_ip;
   843          }


regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: IB/rdmavt: Add create queue pair functionality
  2016-03-22 20:01 IB/rdmavt: Add create queue pair functionality Dan Carpenter
@ 2016-03-23 15:33 ` Marciniszyn, Mike
  0 siblings, 0 replies; 2+ messages in thread
From: Marciniszyn, Mike @ 2016-03-23 15:33 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Dalessandro, Dennis

> The patch 515667f8f8b4: "IB/rdmavt: Add create queue pair functionality"
> from Jan 22, 2016, leads to the following static checker warning:
> 
> 	drivers/infiniband/sw/rdmavt/qp.c:835 rvt_create_qp()
> 	warn: odd binop '0x4 & 0xe0'
> 
> drivers/infiniband/sw/rdmavt/qp.c
>    834          case IB_QPT_RC:
>    835                  qp->allowed_ops = IB_OPCODE_RC_SEND_ONLY &
> RVT_OPCODE_QP_MASK;
> 
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>                                           0x4                    & 0xE0
> is zero.  I couldn't figure out where IB_OPCODE_RC_SEND_ONLY is defined
> but presumably Smatch is correct that it's 4.
> 

IB_OPCODE_RC_SEND_ONLY is prepared by:

#define IB_OPCODE(transport, op) \
        IB_OPCODE_ ## transport ## _ ## op = \
                IB_OPCODE_ ## transport + IB_OPCODE_ ## op

in include/rdma/ib_pack.h.

The intent of allowed_ops is to allow for quick validation of an opcode for a QP by a masked compare.

Perhaps a better coding would use these defines from the same file?:
        IB_OPCODE_RC                                = 0x00,
        IB_OPCODE_UC                                = 0x20,
        IB_OPCODE_UD                                = 0x60,

Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-03-23 15:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-22 20:01 IB/rdmavt: Add create queue pair functionality Dan Carpenter
2016-03-23 15:33 ` Marciniszyn, Mike

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox