In preparation for adding another layer of call into a DSA stacked ops
singleton, wrap the ndo_do_ioctl() call into dev_do_ioctl().

Reviewed-by: Andrew Lunn <and...@lunn.ch>
Signed-off-by: Florian Fainelli <f.faine...@gmail.com>
---
 net/core/dev_ioctl.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 547b587c1950..a213c703c90a 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -225,6 +225,22 @@ static int net_hwtstamp_validate(struct ifreq *ifr)
        return 0;
 }
 
+static int dev_do_ioctl(struct net_device *dev,
+                       struct ifreq *ifr, unsigned int cmd)
+{
+       const struct net_device_ops *ops = dev->netdev_ops;
+       int err = -EOPNOTSUPP;
+
+       if (ops->ndo_do_ioctl) {
+               if (netif_device_present(dev))
+                       err = ops->ndo_do_ioctl(dev, ifr, cmd);
+               else
+                       err = -ENODEV;
+       }
+
+       return err;
+}
+
 /*
  *     Perform the SIOCxIFxxx calls, inside rtnl_lock()
  */
@@ -323,13 +339,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, 
unsigned int cmd)
                    cmd == SIOCSHWTSTAMP ||
                    cmd == SIOCGHWTSTAMP ||
                    cmd == SIOCWANDEV) {
-                       err = -EOPNOTSUPP;
-                       if (ops->ndo_do_ioctl) {
-                               if (netif_device_present(dev))
-                                       err = ops->ndo_do_ioctl(dev, ifr, cmd);
-                               else
-                                       err = -ENODEV;
-                       }
+                       err = dev_do_ioctl(dev, ifr, cmd);
                } else
                        err = -EINVAL;
 
-- 
2.25.1

Reply via email to