Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f55c3ec4 authored by Yuval Shaia's avatar Yuval Shaia Committed by Jason Gunthorpe
Browse files

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: default avatarYuval Shaia <yuval.shaia@oracle.com>
Reviewed-by: default avatarSteve Wise <swise@opengridcomputing.com&gt; >
Reviewed-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent d5108e69
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 rxe_dev *rxe);

#endif /* RXE_H */
+9 −4
Original line number Diff line number Diff line
@@ -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 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,
		      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(rxe);
		break;
	case NETDEV_REBOOT:
	case NETDEV_GOING_DOWN:
+1 −17
Original line number Diff line number Diff line
@@ -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(rxe);
	dev_info(&rxe->ib_dev.dev, "added %s\n", intf);
err:
	if (ndev)