IB/rxe: Reuse code which sets port state
authorYuval Shaia <yuval.shaia@oracle.com>
Fri, 14 Dec 2018 16:05:49 +0000 (08:05 -0800)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 20 Dec 2018 21:20:58 +0000 (14:20 -0700)
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>
drivers/infiniband/sw/rxe/rxe.h
drivers/infiniband/sw/rxe/rxe_net.c
drivers/infiniband/sw/rxe/rxe_sysfs.c

index 8f79bd86d0337fdf2d9e38bd16b20ec61a8ae124..5bde2ad964d277e79dba48bf3db6e5abc022dfaf 100644 (file)
@@ -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 */
index b26a8141f3edcb184b21f66f9d5d4002475014e7..8fd03ae20efc1735c269a6086db71191b4e02518 100644 (file)
@@ -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:
index 73a19f808e1bab2cab71c7f0bfd401d37c54c32d..95a15892f7e659de7977ba42659c821900105d46 100644 (file)
@@ -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)