RE: [PATCH] IB/core: Make function rdma_copy_addr return void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Yuval,

> -----Original Message-----
> From: Yuval Shaia [mailto:yuval.shaia@xxxxxxxxxx]
> Sent: Sunday, November 05, 2017 3:08 PM
> To: dledford@xxxxxxxxxx; sean.hefty@xxxxxxxxx; hal.rosenstock@xxxxxxxxx;
> Leon Romanovsky <leonro@xxxxxxxxxxxx>; swise@xxxxxxxxxxxxxxxxxxxxx;
> pabeni@xxxxxxxxxx; johannes.berg@xxxxxxxxx; Moni Shoua
> <monis@xxxxxxxxxxxx>; yuval.shaia@xxxxxxxxxx; Parav Pandit
> <parav@xxxxxxxxxxxx>; Mark Bloch <markb@xxxxxxxxxxxx>;
> ira.weiny@xxxxxxxxx; don.hiatt@xxxxxxxxx;
> dasaratharaman.chandramouli@xxxxxxxxx; Majd Dibbiny
> <majd@xxxxxxxxxxxx>; arnd@xxxxxxxx; linux-rdma@xxxxxxxxxxxxxxx
> Subject: [PATCH] IB/core: Make function rdma_copy_addr return void
> 
> Function returns zero - make it void.
> 
> Signed-off-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux