Message ID | 1502442585-22391-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Fri, Aug 11, 2017 at 02:09:45AM -0700, Selvin Xavier wrote: > RoCE gid_type should be 0 or 1 based on RoCE v1 or > RoCE V2. Since bit mask is used now, cma_dev->default_gid_type > is set to 2 (1 << IB_GID_TYPE_ROCE_UDP_ENCAP). > Use the bit mask to check the prefered gid_type and > assign the gid_type value to IB_GID_TYPE_ROCE(0) or > IB_GID_TYPE_ROCE_UDP_ENCAP(1). > > Fixes: 3c7f67d1880d (IB/cma: Fix default RoCE type setting) > Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com> > Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> > --- > drivers/infiniband/core/cma.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > Hi Selvin, We tested a little bit simple version of this fix. https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git/commit/?h=rdma-next&id=bf01e3dda415538fcb799bebfe60053cf6154490 Thanks,
On Fri, Aug 11, 2017 at 3:08 PM, Leon Romanovsky <leon@kernel.org> wrote: > > > Hi Selvin, > > We tested a little bit simple version of this fix. > https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git/commit/?h=rdma-next&id=bf01e3dda415538fcb799bebfe60053cf6154490 Thanks Leon. Your patch looks good to me. Do you plan to post it to mailing list soon? -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Aug 11, 2017 at 03:26:42PM +0530, Selvin Xavier wrote: > On Fri, Aug 11, 2017 at 3:08 PM, Leon Romanovsky <leon@kernel.org> wrote: > > > > > > Hi Selvin, > > > > We tested a little bit simple version of this fix. > > https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git/commit/?h=rdma-next&id=bf01e3dda415538fcb799bebfe60053cf6154490 > > Thanks Leon. Your patch looks good to me. Do you plan to post it to > mailing list soon? Yes, today.
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index ca4135c..eb420da 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -72,7 +72,8 @@ MODULE_LICENSE("Dual BSD/GPL"); #define CMA_MAX_CM_RETRIES 15 #define CMA_CM_MRA_SETTING (IB_CM_MRA_FLAG_DELAY | 24) #define CMA_IBOE_PACKET_LIFETIME 18 -#define CMA_PREFERRED_ROCE_GID_TYPE (1 << IB_GID_TYPE_ROCE_UDP_ENCAP) +#define CMA_PREFERRED_ROCE_GID_TYPE_MASK (1 << IB_GID_TYPE_ROCE_UDP_ENCAP) +#define CMA_PREFERRED_ROCE_GID_TYPE __ffs(CMA_PREFERRED_ROCE_GID_TYPE_MASK) static const char * const cma_events[] = { [RDMA_CM_EVENT_ADDR_RESOLVED] = "address resolved", @@ -4282,7 +4283,7 @@ static void cma_add_one(struct ib_device *device) for (i = rdma_start_port(device); i <= rdma_end_port(device); i++) { supported_gids = roce_gid_type_mask_support(device, i); WARN_ON(!supported_gids); - if (supported_gids & CMA_PREFERRED_ROCE_GID_TYPE) + if (supported_gids & CMA_PREFERRED_ROCE_GID_TYPE_MASK) cma_dev->default_gid_type[i - rdma_start_port(device)] = CMA_PREFERRED_ROCE_GID_TYPE; else