Re: [PATCH] IB/rxe: Reuse code which sets port state

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

 



On Thu, Dec 06, 2018 at 09:03:56PM +0800, Yanjun Zhu wrote:
> 
> On 2018/12/6 19:01, Yuval Shaia wrote:
> > Same code is executed in both rxe_param_set_add and rxe_notify
> > functions.
> > Make one function and call it from both places.
> > 
> > Note that the code that checks validity of rxe object is omitted since
> > both callers already make sure it is valid.
> > 
> > Signed-off-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx>
> > ---
> >   drivers/infiniband/sw/rxe/rxe.h       |  1 +
> >   drivers/infiniband/sw/rxe/rxe_net.c   | 13 +++++++++----
> >   drivers/infiniband/sw/rxe/rxe_sysfs.c | 18 +-----------------
> >   3 files changed, 11 insertions(+), 21 deletions(-)
> > 
> > diff --git a/drivers/infiniband/sw/rxe/rxe.h b/drivers/infiniband/sw/rxe/rxe.h
> > index 8f79bd86d033..cd40a3062551 100644
> > --- a/drivers/infiniband/sw/rxe/rxe.h
> > +++ b/drivers/infiniband/sw/rxe/rxe.h
> > @@ -110,5 +110,6 @@ struct rxe_dev *get_rxe_by_name(const char *name);
> >   void rxe_port_up(struct rxe_dev *rxe);
> >   void rxe_port_down(struct rxe_dev *rxe);
> > +void rxe_set_port_state(struct net_device *ndev, struct rxe_dev *rxe);
> >   #endif /* RXE_H */
> > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> > index b26a8141f3ed..467329f69300 100644
> > --- a/drivers/infiniband/sw/rxe/rxe_net.c
> > +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> > @@ -625,6 +625,14 @@ void rxe_port_down(struct rxe_dev *rxe)
> >   	dev_info(&rxe->ib_dev.dev, "set down\n");
> >   }
> > +void rxe_set_port_state(struct net_device *ndev, struct rxe_dev *rxe)
> 
> an inline function is better?
> 
> Zhu Yanjun

Thanks, i just followed the convention used in rxe_port_up and
rxe_port_down plus the fact that original rxe_set_port_state was not.

> 
> 
> > +{
> > +	if (netif_running(ndev) && netif_carrier_ok(ndev))
> > +		rxe_port_up(rxe);
> > +	else
> > +		rxe_port_down(rxe);
> > +}
> > +
> >   static int rxe_notify(struct notifier_block *not_blk,
> >   		      unsigned long event,
> >   		      void *arg)
> > @@ -651,10 +659,7 @@ static int rxe_notify(struct notifier_block *not_blk,
> >   		rxe_set_mtu(rxe, ndev->mtu);
> >   		break;
> >   	case NETDEV_CHANGE:
> > -		if (netif_running(ndev) && netif_carrier_ok(ndev))
> > -			rxe_port_up(rxe);
> > -		else
> > -			rxe_port_down(rxe);
> > +		rxe_set_port_state(ndev, rxe);
> >   		break;
> >   	case NETDEV_REBOOT:
> >   	case NETDEV_GOING_DOWN:
> > diff --git a/drivers/infiniband/sw/rxe/rxe_sysfs.c b/drivers/infiniband/sw/rxe/rxe_sysfs.c
> > index 73a19f808e1b..21c319e22ca5 100644
> > --- a/drivers/infiniband/sw/rxe/rxe_sysfs.c
> > +++ b/drivers/infiniband/sw/rxe/rxe_sysfs.c
> > @@ -53,22 +53,6 @@ static int sanitize_arg(const char *val, char *intf, int intf_len)
> >   	return len;
> >   }
> > -static void rxe_set_port_state(struct net_device *ndev)
> > -{
> > -	struct rxe_dev *rxe = net_to_rxe(ndev);
> > -	bool is_up = netif_running(ndev) && netif_carrier_ok(ndev);
> > -
> > -	if (!rxe)
> > -		goto out;
> > -
> > -	if (is_up)
> > -		rxe_port_up(rxe);
> > -	else
> > -		rxe_port_down(rxe); /* down for unknown state */
> > -out:
> > -	return;
> > -}
> > -
> >   static int rxe_param_set_add(const char *val, const struct kernel_param *kp)
> >   {
> >   	int len;
> > @@ -104,7 +88,7 @@ static int rxe_param_set_add(const char *val, const struct kernel_param *kp)
> >   		goto err;
> >   	}
> > -	rxe_set_port_state(ndev);
> > +	rxe_set_port_state(ndev, rxe);
> >   	dev_info(&rxe->ib_dev.dev, "added %s\n", intf);
> >   err:
> >   	if (ndev)



[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