net: devlink: use devlink_port pointer instead of ndo_get_devlink_port
authorJiri Pirko <jiri@nvidia.com>
Wed, 2 Nov 2022 16:02:09 +0000 (17:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 4 Nov 2022 03:48:36 +0000 (20:48 -0700)
Use newly introduced devlink_port pointer instead of getting it calling
to ndo_get_devlink_port op.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/devlink.c
net/core/net-sysfs.c
net/ethtool/ioctl.c

index 4a0ba86b86ed571ba2f8b385df9ea48d4b5ec7dd..3a454d0045e5e6b87105e841668969c0ce5bd979 100644 (file)
@@ -12505,14 +12505,6 @@ free_msg:
        nlmsg_free(msg);
 }
 
-static struct devlink_port *netdev_to_devlink_port(struct net_device *dev)
-{
-       if (!dev->netdev_ops->ndo_get_devlink_port)
-               return NULL;
-
-       return dev->netdev_ops->ndo_get_devlink_port(dev);
-}
-
 void devlink_compat_running_version(struct devlink *devlink,
                                    char *buf, size_t len)
 {
@@ -12558,7 +12550,7 @@ int devlink_compat_phys_port_name_get(struct net_device *dev,
         */
        ASSERT_RTNL();
 
-       devlink_port = netdev_to_devlink_port(dev);
+       devlink_port = dev->devlink_port;
        if (!devlink_port)
                return -EOPNOTSUPP;
 
@@ -12574,7 +12566,7 @@ int devlink_compat_switch_id_get(struct net_device *dev,
         * devlink_port instance cannot disappear in the middle. No need to take
         * any devlink lock as only permanent values are accessed.
         */
-       devlink_port = netdev_to_devlink_port(dev);
+       devlink_port = dev->devlink_port;
        if (!devlink_port || !devlink_port->switch_port)
                return -EOPNOTSUPP;
 
index 8409d41405dfe4a4448f3b7f070bdf9f856d74b8..679b84cc879429d2a0ecb4720517de29b6560b7f 100644 (file)
@@ -532,7 +532,7 @@ static ssize_t phys_port_name_show(struct device *dev,
         * returning early without hitting the trylock/restart below.
         */
        if (!netdev->netdev_ops->ndo_get_phys_port_name &&
-           !netdev->netdev_ops->ndo_get_devlink_port)
+           !netdev->devlink_port)
                return -EOPNOTSUPP;
 
        if (!rtnl_trylock())
@@ -562,7 +562,7 @@ static ssize_t phys_switch_id_show(struct device *dev,
         * because recurse is false when calling dev_get_port_parent_id.
         */
        if (!netdev->netdev_ops->ndo_get_port_parent_id &&
-           !netdev->netdev_ops->ndo_get_devlink_port)
+           !netdev->devlink_port)
                return -EOPNOTSUPP;
 
        if (!rtnl_trylock())
index 57e7238a4136bbb309d0e3549aa0b49c13ecefd9..b6835136c53fff320f34308f65d796a7d7cf7f06 100644 (file)
@@ -44,16 +44,9 @@ struct ethtool_devlink_compat {
 
 static struct devlink *netdev_to_devlink_get(struct net_device *dev)
 {
-       struct devlink_port *devlink_port;
-
-       if (!dev->netdev_ops->ndo_get_devlink_port)
-               return NULL;
-
-       devlink_port = dev->netdev_ops->ndo_get_devlink_port(dev);
-       if (!devlink_port)
+       if (!dev->devlink_port)
                return NULL;
-
-       return devlink_try_get(devlink_port->devlink);
+       return devlink_try_get(dev->devlink_port->devlink);
 }
 
 /*