[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1493941746.3041.242.camel@redhat.com>
Date: Thu, 04 May 2017 19:49:06 -0400
From: Doug Ledford <dledford@...hat.com>
To: Parav Pandit <parav@...lanox.com>,
"Gustavo A. R. Silva" <garsilva@...eddedor.com>,
Sean Hefty <sean.hefty@...el.com>,
Hal Rosenstock <hal.rosenstock@...il.com>,
Sagi Grimberg <sagi@...mberg.me>,
Bart Van Assche <bart.vanassche@...disk.com>,
Steve Wise <swise@...ngridcomputing.com>,
Leon Romanovsky <leonro@...lanox.com>,
Yishai Hadas <yishaih@...lanox.com>,
Moni Shoua <monis@...lanox.com>
Cc: "linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [infiniband-core] question about arguments position
On Thu, 2017-05-04 at 21:52 +0000, Parav Pandit wrote:
> Hi,
>
> >
> > -----Original Message-----
> > From: linux-rdma-owner@...r.kernel.org [mailto:linux-rdma-
> > owner@...r.kernel.org] On Behalf Of Gustavo A. R. Silva
> > Sent: Thursday, May 4, 2017 12:42 PM
> > To: Doug Ledford <dledford@...hat.com>; Sean Hefty
> > <sean.hefty@...el.com>; Hal Rosenstock <hal.rosenstock@...il.com>;
> > Sagi
> > Grimberg <sagi@...berg.me>; Bart Van Assche
> > <bart.vanassche@...disk.com>; Steve Wise <swise@...ngridcomputing.c
> > om>;
> > Leon Romanovsky <leonro@...lanox.com>; Yishai Hadas
> > <yishaih@...lanox.com>; Moni Shoua <monis@...lanox.com>
> > Cc: linux-rdma@...r.kernel.org; linux-kernel@...r.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@...hat.com>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
Powered by blists - more mailing lists