lkml.org 
[lkml]   [2017]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [infiniband-core] question about arguments position
From
Date
On Thu, 2017-05-04 at 21:52 +0000, Parav Pandit wrote:
> Hi,
>
> >
> > -----Original Message-----
> > From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma-
> > owner@vger.kernel.org] On Behalf Of Gustavo A. R. Silva
> > Sent: Thursday, May 4, 2017 12:42 PM
> > To: Doug Ledford <dledford@redhat.com>; Sean Hefty
> > <sean.hefty@intel.com>; Hal Rosenstock <hal.rosenstock@gmail.com>;
> > Sagi
> > Grimberg <sagi@rimberg.me>; Bart Van Assche
> > <bart.vanassche@sandisk.com>; Steve Wise <swise@opengridcomputing.c
> > om>;
> > Leon Romanovsky <leonro@mellanox.com>; Yishai Hadas
> > <yishaih@mellanox.com>; Moni Shoua <monis@mellanox.com>
> > Cc: linux-rdma@vger.kernel.org; linux-kernel@vger.kernel.org
> > Subject: [infiniband-core] question about arguments position
> >
> >
> > Hello everybody,
> >
> > While looking into Coverity ID 1351047 I ran into the following
> > piece of code at
> > drivers/infiniband/core/verbs.c:496:
> >
> > ret = rdma_addr_find_l2_eth_by_grh(&dgid, &sgid,
> >                                     ah_attr->dmac,
> >                                     wc->wc_flags & IB_WC_WITH_VLAN
> > ?
> >                                     NULL : &vlan_id,
> >                                     &if_index, &hoplimit);
> >
> >
> > The issue here is that the position of arguments in the call to
> > rdma_addr_find_l2_eth_by_grh() function do not match the order of
> > the
> > parameters:
> >
> > &dgid is passed to sgid
> > &sgid is passed to dgid
> >
> > This is the function prototype:
> >
> > int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
> >  const union ib_gid *dgid,
> >  u8 *dmac, u16 *vlan_id, int *if_index,
> >  int *hoplimit)
> >
> > My question here is if this is intentional?
> >
> Yes. ib_init_ah_from_wc() creates ah from the incoming packet.
> Incoming packet has dgid of the receiver node on which this code is
> getting executed
> And sgid contains the GID of the sender.
>
> When resolving mac address of destination, you use arrived dgid as
> sgid.
> And use sgid as dgid because sgid contains destinations GID whom to
> respond to.

A patch to add a comment and forestall future questions here might be a
good addition.

--
Doug Ledford <dledford@redhat.com>
    GPG KeyID: B826A3330E572FDD
   
Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

\
 
 \ /
  Last update: 2017-05-05 01:49    [W:1.486 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site