mirror of https://gitee.com/openkylin/linux.git
IB/rxe: Reuse code which sets port state
Same code is executed in both rxe_param_set_add and rxe_notify functions. Make one function and call it from both places. Since both callers already have a rxe object use it directly instead of deriving it from the net device. Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
d5108e69fe
commit
f55c3ec42a
|
@ -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_up(struct rxe_dev *rxe);
|
||||||
void rxe_port_down(struct rxe_dev *rxe);
|
void rxe_port_down(struct rxe_dev *rxe);
|
||||||
|
void rxe_set_port_state(struct rxe_dev *rxe);
|
||||||
|
|
||||||
#endif /* RXE_H */
|
#endif /* RXE_H */
|
||||||
|
|
|
@ -625,6 +625,14 @@ void rxe_port_down(struct rxe_dev *rxe)
|
||||||
dev_info(&rxe->ib_dev.dev, "set down\n");
|
dev_info(&rxe->ib_dev.dev, "set down\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rxe_set_port_state(struct rxe_dev *rxe)
|
||||||
|
{
|
||||||
|
if (netif_running(rxe->ndev) && netif_carrier_ok(rxe->ndev))
|
||||||
|
rxe_port_up(rxe);
|
||||||
|
else
|
||||||
|
rxe_port_down(rxe);
|
||||||
|
}
|
||||||
|
|
||||||
static int rxe_notify(struct notifier_block *not_blk,
|
static int rxe_notify(struct notifier_block *not_blk,
|
||||||
unsigned long event,
|
unsigned long event,
|
||||||
void *arg)
|
void *arg)
|
||||||
|
@ -651,10 +659,7 @@ static int rxe_notify(struct notifier_block *not_blk,
|
||||||
rxe_set_mtu(rxe, ndev->mtu);
|
rxe_set_mtu(rxe, ndev->mtu);
|
||||||
break;
|
break;
|
||||||
case NETDEV_CHANGE:
|
case NETDEV_CHANGE:
|
||||||
if (netif_running(ndev) && netif_carrier_ok(ndev))
|
rxe_set_port_state(rxe);
|
||||||
rxe_port_up(rxe);
|
|
||||||
else
|
|
||||||
rxe_port_down(rxe);
|
|
||||||
break;
|
break;
|
||||||
case NETDEV_REBOOT:
|
case NETDEV_REBOOT:
|
||||||
case NETDEV_GOING_DOWN:
|
case NETDEV_GOING_DOWN:
|
||||||
|
|
|
@ -53,22 +53,6 @@ static int sanitize_arg(const char *val, char *intf, int intf_len)
|
||||||
return 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)
|
static int rxe_param_set_add(const char *val, const struct kernel_param *kp)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
|
@ -104,7 +88,7 @@ static int rxe_param_set_add(const char *val, const struct kernel_param *kp)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
rxe_set_port_state(ndev);
|
rxe_set_port_state(rxe);
|
||||||
dev_info(&rxe->ib_dev.dev, "added %s\n", intf);
|
dev_info(&rxe->ib_dev.dev, "added %s\n", intf);
|
||||||
err:
|
err:
|
||||||
if (ndev)
|
if (ndev)
|
||||||
|
|
Loading…
Reference in New Issue