* [PATCH] IB/core: Make function rdma_copy_addr return void
@ 2017-11-05 21:08 Yuval Shaia
[not found] ` <20171105210817.17673-1-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Yuval Shaia @ 2017-11-05 21:08 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
leonro-VPRAkNaXOzVWk0Htik3J/w,
swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW,
pabeni-H+wXaHxf7aLQT0dZR+AlfA,
johannes.berg-ral2JQCrhuEAvxtiuMwx3w,
monis-VPRAkNaXOzVWk0Htik3J/w, yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA,
parav-VPRAkNaXOzVWk0Htik3J/w, markb-VPRAkNaXOzVWk0Htik3J/w,
ira.weiny-ral2JQCrhuEAvxtiuMwx3w,
don.hiatt-ral2JQCrhuEAvxtiuMwx3w,
dasaratharaman.chandramouli-ral2JQCrhuEAvxtiuMwx3w,
majd-VPRAkNaXOzVWk0Htik3J/w, arnd-r2nGTMty4D4,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
Function returns zero - make it void.
Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
---
drivers/infiniband/core/addr.c | 25 +++++++++++++------------
drivers/infiniband/core/cma.c | 8 ++------
include/rdma/ib_addr.h | 4 ++--
3 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 12523f630b61..f14ee741e6f0 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -229,8 +229,8 @@ void rdma_addr_unregister_client(struct rdma_addr_client *client)
}
EXPORT_SYMBOL(rdma_addr_unregister_client);
-int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
- const unsigned char *dst_dev_addr)
+void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
+ const unsigned char *dst_dev_addr)
{
dev_addr->dev_type = dev->type;
memcpy(dev_addr->src_dev_addr, dev->dev_addr, MAX_ADDR_LEN);
@@ -238,7 +238,6 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
if (dst_dev_addr)
memcpy(dev_addr->dst_dev_addr, dst_dev_addr, MAX_ADDR_LEN);
dev_addr->bound_dev_if = dev->ifindex;
- return 0;
}
EXPORT_SYMBOL(rdma_copy_addr);
@@ -247,15 +246,14 @@ int rdma_translate_ip(const struct sockaddr *addr,
u16 *vlan_id)
{
struct net_device *dev;
- int ret = -EADDRNOTAVAIL;
if (dev_addr->bound_dev_if) {
dev = dev_get_by_index(dev_addr->net, dev_addr->bound_dev_if);
if (!dev)
return -ENODEV;
- ret = rdma_copy_addr(dev_addr, dev, NULL);
+ rdma_copy_addr(dev_addr, dev, NULL);
dev_put(dev);
- return ret;
+ return 0;
}
switch (addr->sa_family) {
@@ -264,9 +262,9 @@ int rdma_translate_ip(const struct sockaddr *addr,
((const struct sockaddr_in *)addr)->sin_addr.s_addr);
if (!dev)
- return ret;
+ return -EADDRNOTAVAIL;
- ret = rdma_copy_addr(dev_addr, dev, NULL);
+ rdma_copy_addr(dev_addr, dev, NULL);
dev_addr->bound_dev_if = dev->ifindex;
if (vlan_id)
*vlan_id = rdma_vlan_dev_vlan_id(dev);
@@ -279,7 +277,7 @@ int rdma_translate_ip(const struct sockaddr *addr,
if (ipv6_chk_addr(dev_addr->net,
&((const struct sockaddr_in6 *)addr)->sin6_addr,
dev, 1)) {
- ret = rdma_copy_addr(dev_addr, dev, NULL);
+ rdma_copy_addr(dev_addr, dev, NULL);
dev_addr->bound_dev_if = dev->ifindex;
if (vlan_id)
*vlan_id = rdma_vlan_dev_vlan_id(dev);
@@ -290,7 +288,7 @@ int rdma_translate_ip(const struct sockaddr *addr,
break;
#endif
}
- return ret;
+ return 0;
}
EXPORT_SYMBOL(rdma_translate_ip);
@@ -346,7 +344,8 @@ static int dst_fetch_ha(struct dst_entry *dst, struct rdma_dev_addr *dev_addr,
neigh_event_send(n, NULL);
ret = -ENODATA;
} else {
- ret = rdma_copy_addr(dev_addr, dst->dev, n->ha);
+ rdma_copy_addr(dev_addr, dst->dev, n->ha);
+ ret = 0;
}
rcu_read_unlock();
@@ -494,7 +493,9 @@ static int addr_resolve_neigh(struct dst_entry *dst,
if (!(dst->dev->flags & IFF_NOARP))
return fetch_ha(dst, addr, dst_in, seq);
- return rdma_copy_addr(addr, dst->dev, NULL);
+ rdma_copy_addr(addr, dst->dev, NULL);
+
+ return 0;
}
static int addr_resolve(struct sockaddr *src_in,
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 852c8fec8088..0527a6a7ef26 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1846,9 +1846,7 @@ static struct rdma_id_private *cma_new_conn_id(struct rdma_cm_id *listen_id,
rt->path_rec[1] = *ib_event->param.req_rcvd.alternate_path;
if (net_dev) {
- ret = rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
- if (ret)
- goto err;
+ rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
} else {
if (!cma_protocol_roce(listen_id) &&
cma_any_addr(cma_src_addr(id_priv))) {
@@ -1894,9 +1892,7 @@ static struct rdma_id_private *cma_new_udp_id(struct rdma_cm_id *listen_id,
goto err;
if (net_dev) {
- ret = rdma_copy_addr(&id->route.addr.dev_addr, net_dev, NULL);
- if (ret)
- goto err;
+ rdma_copy_addr(&id->route.addr.dev_addr, net_dev, NULL);
} else {
if (!cma_any_addr(cma_src_addr(id_priv))) {
ret = cma_translate_addr(cma_src_addr(id_priv),
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h
index ec5008cf5d51..5647f3932ffe 100644
--- a/include/rdma/ib_addr.h
+++ b/include/rdma/ib_addr.h
@@ -125,8 +125,8 @@ int rdma_resolve_ip_route(struct sockaddr *src_addr,
void rdma_addr_cancel(struct rdma_dev_addr *addr);
-int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
- const unsigned char *dst_dev_addr);
+void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
+ const unsigned char *dst_dev_addr);
int rdma_addr_size(struct sockaddr *addr);
--
2.13.6
--
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 related [flat|nested] 3+ messages in thread
* RE: [PATCH] IB/core: Make function rdma_copy_addr return void
[not found] ` <20171105210817.17673-1-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
@ 2017-11-05 21:52 ` Parav Pandit
[not found] ` <VI1PR0502MB30083B5B521025DA45BF3E63D1530-o1MPJYiShExKsLr+rGaxW8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Parav Pandit @ 2017-11-05 21:52 UTC (permalink / raw)
To: Yuval Shaia, dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Leon Romanovsky,
swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org,
pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, Moni Shoua,
Mark Bloch, ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
don.hiatt-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
dasaratharaman.chandramouli-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
Majd Dibbiny, arnd-r2nGTMty4D4@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Hi Yuval,
> -----Original Message-----
> From: Yuval Shaia [mailto:yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org]
> Sent: Sunday, November 05, 2017 3:08 PM
> To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org;
> Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org;
> pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; Moni Shoua
> <monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org; Parav Pandit
> <parav-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>;
> ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; don.hiatt-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org;
> dasaratharaman.chandramouli-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; Majd Dibbiny
> <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; arnd-r2nGTMty4D4@public.gmane.org; linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: [PATCH] IB/core: Make function rdma_copy_addr return void
>
> Function returns zero - make it void.
>
> Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> ---
> drivers/infiniband/core/addr.c | 25 +++++++++++++------------
> drivers/infiniband/core/cma.c | 8 ++------
> include/rdma/ib_addr.h | 4 ++--
> 3 files changed, 17 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index
> 12523f630b61..f14ee741e6f0 100644
> --- a/drivers/infiniband/core/addr.c
> +++ b/drivers/infiniband/core/addr.c
> @@ -229,8 +229,8 @@ void rdma_addr_unregister_client(struct
> rdma_addr_client *client) } EXPORT_SYMBOL(rdma_addr_unregister_client);
>
> -int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
> - const unsigned char *dst_dev_addr)
> +void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device
> *dev,
> + const unsigned char *dst_dev_addr)
> {
> dev_addr->dev_type = dev->type;
> memcpy(dev_addr->src_dev_addr, dev->dev_addr, MAX_ADDR_LEN);
> @@ -238,7 +238,6 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr,
> struct net_device *dev,
> if (dst_dev_addr)
> memcpy(dev_addr->dst_dev_addr, dst_dev_addr,
> MAX_ADDR_LEN);
> dev_addr->bound_dev_if = dev->ifindex;
> - return 0;
> }
> EXPORT_SYMBOL(rdma_copy_addr);
>
> @@ -247,15 +246,14 @@ int rdma_translate_ip(const struct sockaddr *addr,
> u16 *vlan_id)
> {
> struct net_device *dev;
> - int ret = -EADDRNOTAVAIL;
>
> if (dev_addr->bound_dev_if) {
> dev = dev_get_by_index(dev_addr->net, dev_addr-
> >bound_dev_if);
> if (!dev)
> return -ENODEV;
> - ret = rdma_copy_addr(dev_addr, dev, NULL);
> + rdma_copy_addr(dev_addr, dev, NULL);
> dev_put(dev);
> - return ret;
> + return 0;
> }
>
> switch (addr->sa_family) {
> @@ -264,9 +262,9 @@ int rdma_translate_ip(const struct sockaddr *addr,
> ((const struct sockaddr_in *)addr)->sin_addr.s_addr);
>
> if (!dev)
> - return ret;
> + return -EADDRNOTAVAIL;
>
> - ret = rdma_copy_addr(dev_addr, dev, NULL);
> + rdma_copy_addr(dev_addr, dev, NULL);
> dev_addr->bound_dev_if = dev->ifindex;
> if (vlan_id)
> *vlan_id = rdma_vlan_dev_vlan_id(dev); @@ -279,7
> +277,7 @@ int rdma_translate_ip(const struct sockaddr *addr,
> if (ipv6_chk_addr(dev_addr->net,
> &((const struct sockaddr_in6 *)addr)-
> >sin6_addr,
> dev, 1)) {
> - ret = rdma_copy_addr(dev_addr, dev, NULL);
> + rdma_copy_addr(dev_addr, dev, NULL);
> dev_addr->bound_dev_if = dev->ifindex;
> if (vlan_id)
> *vlan_id =
> rdma_vlan_dev_vlan_id(dev); @@ -290,7 +288,7 @@ int
> rdma_translate_ip(const struct sockaddr *addr,
> break;
> #endif
> }
> - return ret;
> + return 0;
> }
> EXPORT_SYMBOL(rdma_translate_ip);
>
> @@ -346,7 +344,8 @@ static int dst_fetch_ha(struct dst_entry *dst, struct
> rdma_dev_addr *dev_addr,
> neigh_event_send(n, NULL);
> ret = -ENODATA;
> } else {
> - ret = rdma_copy_addr(dev_addr, dst->dev, n->ha);
> + rdma_copy_addr(dev_addr, dst->dev, n->ha);
> + ret = 0;
> }
> rcu_read_unlock();
>
> @@ -494,7 +493,9 @@ static int addr_resolve_neigh(struct dst_entry *dst,
> if (!(dst->dev->flags & IFF_NOARP))
> return fetch_ha(dst, addr, dst_in, seq);
>
> - return rdma_copy_addr(addr, dst->dev, NULL);
> + rdma_copy_addr(addr, dst->dev, NULL);
> +
> + return 0;
> }
>
> static int addr_resolve(struct sockaddr *src_in, diff --git
> a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index
> 852c8fec8088..0527a6a7ef26 100644
> --- a/drivers/infiniband/core/cma.c
> +++ b/drivers/infiniband/core/cma.c
> @@ -1846,9 +1846,7 @@ static struct rdma_id_private
> *cma_new_conn_id(struct rdma_cm_id *listen_id,
> rt->path_rec[1] = *ib_event->param.req_rcvd.alternate_path;
>
> if (net_dev) {
> - ret = rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
> - if (ret)
> - goto err;
> + rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
> } else {
> if (!cma_protocol_roce(listen_id) &&
> cma_any_addr(cma_src_addr(id_priv))) { @@ -1894,9
> +1892,7 @@ static struct rdma_id_private *cma_new_udp_id(struct
> rdma_cm_id *listen_id,
> goto err;
>
> if (net_dev) {
> - ret = rdma_copy_addr(&id->route.addr.dev_addr, net_dev,
> NULL);
> - if (ret)
> - goto err;
> + rdma_copy_addr(&id->route.addr.dev_addr, net_dev, NULL);
> } else {
> if (!cma_any_addr(cma_src_addr(id_priv))) {
> ret = cma_translate_addr(cma_src_addr(id_priv),
> diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h index
> ec5008cf5d51..5647f3932ffe 100644
> --- a/include/rdma/ib_addr.h
> +++ b/include/rdma/ib_addr.h
> @@ -125,8 +125,8 @@ int rdma_resolve_ip_route(struct sockaddr *src_addr,
>
> void rdma_addr_cancel(struct rdma_dev_addr *addr);
>
> -int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
> - const unsigned char *dst_dev_addr);
> +void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device
> *dev,
> + const unsigned char *dst_dev_addr);
Few days back, Moni had exact same suggestion on internal patch of mine where I am simplifying rdma_translate_ip do avoid bound_dev_if double copy, which is now in Leon's queue currently.
I wanted to do error handling in copy address and I was unsure back at that time.
But this looks fine. This note for mainly for Moni than you.
This patch looks fine.
However since you are changing rdma_copy_addr signature,
can you also make rdma_copy_addr from 'struct net_device' to 'const struct net_device *'?
--
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] 3+ messages in thread
* Re: [PATCH] IB/core: Make function rdma_copy_addr return void
[not found] ` <VI1PR0502MB30083B5B521025DA45BF3E63D1530-o1MPJYiShExKsLr+rGaxW8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
@ 2017-11-06 10:36 ` Yuval Shaia
0 siblings, 0 replies; 3+ messages in thread
From: Yuval Shaia @ 2017-11-06 10:36 UTC (permalink / raw)
To: Parav Pandit
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Leon Romanovsky,
swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org,
pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, Moni Shoua,
Mark Bloch, ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
don.hiatt-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
dasaratharaman.chandramouli-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
Majd Dibbiny, arnd-r2nGTMty4D4@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
On Sun, Nov 05, 2017 at 09:52:16PM +0000, Parav Pandit wrote:
> Hi Yuval,
>
> > -----Original Message-----
> > From: Yuval Shaia [mailto:yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org]
> > Sent: Sunday, November 05, 2017 3:08 PM
> > To: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org;
> > Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org;
> > pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; Moni Shoua
> > <monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org; Parav Pandit
> > <parav-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; Mark Bloch <markb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>;
> > ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; don.hiatt-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org;
> > dasaratharaman.chandramouli-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org; Majd Dibbiny
> > <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>; arnd-r2nGTMty4D4@public.gmane.org; linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > Subject: [PATCH] IB/core: Make function rdma_copy_addr return void
> >
> > Function returns zero - make it void.
> >
> > Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> > ---
> > drivers/infiniband/core/addr.c | 25 +++++++++++++------------
> > drivers/infiniband/core/cma.c | 8 ++------
> > include/rdma/ib_addr.h | 4 ++--
> > 3 files changed, 17 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index
> > 12523f630b61..f14ee741e6f0 100644
> > --- a/drivers/infiniband/core/addr.c
> > +++ b/drivers/infiniband/core/addr.c
> > @@ -229,8 +229,8 @@ void rdma_addr_unregister_client(struct
> > rdma_addr_client *client) } EXPORT_SYMBOL(rdma_addr_unregister_client);
> >
> > -int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
> > - const unsigned char *dst_dev_addr)
> > +void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device
> > *dev,
> > + const unsigned char *dst_dev_addr)
> > {
> > dev_addr->dev_type = dev->type;
> > memcpy(dev_addr->src_dev_addr, dev->dev_addr, MAX_ADDR_LEN);
> > @@ -238,7 +238,6 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr,
> > struct net_device *dev,
> > if (dst_dev_addr)
> > memcpy(dev_addr->dst_dev_addr, dst_dev_addr,
> > MAX_ADDR_LEN);
> > dev_addr->bound_dev_if = dev->ifindex;
> > - return 0;
> > }
> > EXPORT_SYMBOL(rdma_copy_addr);
> >
> > @@ -247,15 +246,14 @@ int rdma_translate_ip(const struct sockaddr *addr,
> > u16 *vlan_id)
> > {
> > struct net_device *dev;
> > - int ret = -EADDRNOTAVAIL;
> >
> > if (dev_addr->bound_dev_if) {
> > dev = dev_get_by_index(dev_addr->net, dev_addr-
> > >bound_dev_if);
> > if (!dev)
> > return -ENODEV;
> > - ret = rdma_copy_addr(dev_addr, dev, NULL);
> > + rdma_copy_addr(dev_addr, dev, NULL);
> > dev_put(dev);
> > - return ret;
> > + return 0;
> > }
> >
> > switch (addr->sa_family) {
> > @@ -264,9 +262,9 @@ int rdma_translate_ip(const struct sockaddr *addr,
> > ((const struct sockaddr_in *)addr)->sin_addr.s_addr);
> >
> > if (!dev)
> > - return ret;
> > + return -EADDRNOTAVAIL;
> >
> > - ret = rdma_copy_addr(dev_addr, dev, NULL);
> > + rdma_copy_addr(dev_addr, dev, NULL);
> > dev_addr->bound_dev_if = dev->ifindex;
> > if (vlan_id)
> > *vlan_id = rdma_vlan_dev_vlan_id(dev); @@ -279,7
> > +277,7 @@ int rdma_translate_ip(const struct sockaddr *addr,
> > if (ipv6_chk_addr(dev_addr->net,
> > &((const struct sockaddr_in6 *)addr)-
> > >sin6_addr,
> > dev, 1)) {
> > - ret = rdma_copy_addr(dev_addr, dev, NULL);
> > + rdma_copy_addr(dev_addr, dev, NULL);
> > dev_addr->bound_dev_if = dev->ifindex;
> > if (vlan_id)
> > *vlan_id =
> > rdma_vlan_dev_vlan_id(dev); @@ -290,7 +288,7 @@ int
> > rdma_translate_ip(const struct sockaddr *addr,
> > break;
> > #endif
> > }
> > - return ret;
> > + return 0;
> > }
> > EXPORT_SYMBOL(rdma_translate_ip);
> >
> > @@ -346,7 +344,8 @@ static int dst_fetch_ha(struct dst_entry *dst, struct
> > rdma_dev_addr *dev_addr,
> > neigh_event_send(n, NULL);
> > ret = -ENODATA;
> > } else {
> > - ret = rdma_copy_addr(dev_addr, dst->dev, n->ha);
> > + rdma_copy_addr(dev_addr, dst->dev, n->ha);
> > + ret = 0;
> > }
> > rcu_read_unlock();
> >
> > @@ -494,7 +493,9 @@ static int addr_resolve_neigh(struct dst_entry *dst,
> > if (!(dst->dev->flags & IFF_NOARP))
> > return fetch_ha(dst, addr, dst_in, seq);
> >
> > - return rdma_copy_addr(addr, dst->dev, NULL);
> > + rdma_copy_addr(addr, dst->dev, NULL);
> > +
> > + return 0;
> > }
> >
> > static int addr_resolve(struct sockaddr *src_in, diff --git
> > a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index
> > 852c8fec8088..0527a6a7ef26 100644
> > --- a/drivers/infiniband/core/cma.c
> > +++ b/drivers/infiniband/core/cma.c
> > @@ -1846,9 +1846,7 @@ static struct rdma_id_private
> > *cma_new_conn_id(struct rdma_cm_id *listen_id,
> > rt->path_rec[1] = *ib_event->param.req_rcvd.alternate_path;
> >
> > if (net_dev) {
> > - ret = rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
> > - if (ret)
> > - goto err;
> > + rdma_copy_addr(&rt->addr.dev_addr, net_dev, NULL);
> > } else {
> > if (!cma_protocol_roce(listen_id) &&
> > cma_any_addr(cma_src_addr(id_priv))) { @@ -1894,9
> > +1892,7 @@ static struct rdma_id_private *cma_new_udp_id(struct
> > rdma_cm_id *listen_id,
> > goto err;
> >
> > if (net_dev) {
> > - ret = rdma_copy_addr(&id->route.addr.dev_addr, net_dev,
> > NULL);
> > - if (ret)
> > - goto err;
> > + rdma_copy_addr(&id->route.addr.dev_addr, net_dev, NULL);
> > } else {
> > if (!cma_any_addr(cma_src_addr(id_priv))) {
> > ret = cma_translate_addr(cma_src_addr(id_priv),
> > diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h index
> > ec5008cf5d51..5647f3932ffe 100644
> > --- a/include/rdma/ib_addr.h
> > +++ b/include/rdma/ib_addr.h
> > @@ -125,8 +125,8 @@ int rdma_resolve_ip_route(struct sockaddr *src_addr,
> >
> > void rdma_addr_cancel(struct rdma_dev_addr *addr);
> >
> > -int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
> > - const unsigned char *dst_dev_addr);
> > +void rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device
> > *dev,
> > + const unsigned char *dst_dev_addr);
>
> Few days back, Moni had exact same suggestion on internal patch of mine where I am simplifying rdma_translate_ip do avoid bound_dev_if double copy, which is now in Leon's queue currently.
> I wanted to do error handling in copy address and I was unsure back at that time.
> But this looks fine. This note for mainly for Moni than you.
>
> This patch looks fine.
> However since you are changing rdma_copy_addr signature,
> can you also make rdma_copy_addr from 'struct net_device' to 'const struct net_device *'?
Make sense, will do.
Yuval
--
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] 3+ messages in thread
end of thread, other threads:[~2017-11-06 10:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-05 21:08 [PATCH] IB/core: Make function rdma_copy_addr return void Yuval Shaia
[not found] ` <20171105210817.17673-1-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-11-05 21:52 ` Parav Pandit
[not found] ` <VI1PR0502MB30083B5B521025DA45BF3E63D1530-o1MPJYiShExKsLr+rGaxW8DSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-11-06 10:36 ` Yuval Shaia
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox