This is used to implement SIOCDEVPRIVATE ioctl helpers.
        These should not be added to new drivers, so don't use.
 
+ndo_eth_ioctl:
+       Synchronization: rtnl_lock() semaphore.
+       Context: process
+
 ndo_get_stats:
        Synchronization: rtnl_lock() semaphore, dev_base_lock rwlock, or RCU.
        Context: atomic (can't sleep under rwlock or RCU)
 
 By design, PTP timestamping with a DSA switch does not need any special
 handling in the driver for the host port it is attached to.  However, when the
 host port also supports PTP timestamping, DSA will take care of intercepting
-the ``.ndo_do_ioctl`` calls towards the host port, and block attempts to enable
+the ``.ndo_eth_ioctl`` calls towards the host port, and block attempts to enable
 hardware timestamping on it. This is because the SO_TIMESTAMPING API does not
 allow the delivery of multiple hardware timestamps for the same packet, so
 anybody else except for the DSA switch port must be prevented from doing so.
 driver.  Therefore, as opposed to DSA switches, modifications need to be done
 to each individual MAC driver for PHY timestamping support. This entails:
 
-- Checking, in ``.ndo_do_ioctl``, whether ``phy_has_hwtstamp(netdev->phydev)``
+- Checking, in ``.ndo_eth_ioctl``, whether ``phy_has_hwtstamp(netdev->phydev)``
   is true or not. If it is, then the MAC driver should not process this request
   but instead pass it on to the PHY using ``phy_mii_ioctl()``.
 
 transmission part into 2 portions:
 
 1. "TX": checks whether PTP timestamping has been previously enabled through
-   the ``.ndo_do_ioctl`` ("``priv->hwtstamp_tx_enabled == true``") and the
+   the ``.ndo_eth_ioctl`` ("``priv->hwtstamp_tx_enabled == true``") and the
    current skb requires a TX timestamp ("``skb_shinfo(skb)->tx_flags &
    SKBTX_HW_TSTAMP``"). If this is true, it sets the
    "``skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS``" flag. Note: as
 
 {
        struct ipoib_dev_priv *priv = ipoib_priv(dev);
 
-       if (!priv->rn_ops->ndo_do_ioctl)
+       if (!priv->rn_ops->ndo_eth_ioctl)
                return -EOPNOTSUPP;
 
-       return priv->rn_ops->ndo_do_ioctl(dev, ifr, cmd);
+       return priv->rn_ops->ndo_eth_ioctl(dev, ifr, cmd);
 }
 
 static int ipoib_dev_init(struct net_device *dev)
        .ndo_set_vf_guid         = ipoib_set_vf_guid,
        .ndo_set_mac_address     = ipoib_set_mac,
        .ndo_get_stats64         = ipoib_get_stats,
-       .ndo_do_ioctl            = ipoib_ioctl,
+       .ndo_eth_ioctl           = ipoib_ioctl,
 };
 
 static const struct net_device_ops ipoib_netdev_ops_vf = {
        .ndo_set_rx_mode         = ipoib_set_mcast_list,
        .ndo_get_iflink          = ipoib_get_iflink,
        .ndo_get_stats64         = ipoib_get_stats,
-       .ndo_do_ioctl            = ipoib_ioctl,
+       .ndo_eth_ioctl           = ipoib_ioctl,
 };
 
 static const struct net_device_ops ipoib_netdev_default_pf = {
 
                        BMSR_LSTATUS : 0;
 
        /* Ethtool can't be used, fallback to MII ioctls. */
-       ioctl = slave_ops->ndo_do_ioctl;
+       ioctl = slave_ops->ndo_eth_ioctl;
        if (ioctl) {
                /* TODO: set pointer to correct ioctl on a per team member
                 *       bases to make this more efficient. that is, once
                }
        }
 
-       /* If reporting, report that either there's no dev->do_ioctl,
+       /* If reporting, report that either there's no ndo_eth_ioctl,
         * or both SIOCGMIIREG and get_link failed (meaning that we
         * cannot report link status).  If not reporting, pretend
         * we're ok.
 
        if (!bond->params.use_carrier &&
            slave_dev->ethtool_ops->get_link == NULL &&
-           slave_ops->ndo_do_ioctl == NULL) {
+           slave_ops->ndo_eth_ioctl == NULL) {
                slave_warn(bond_dev, slave_dev, "no link monitoring support\n");
        }
 
        rcu_read_unlock();
 }
 
-static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
+static int bond_eth_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
 {
        struct bonding *bond = netdev_priv(bond_dev);
-       struct net_device *slave_dev = NULL;
-       struct ifbond k_binfo;
-       struct ifbond __user *u_binfo = NULL;
-       struct ifslave k_sinfo;
-       struct ifslave __user *u_sinfo = NULL;
        struct mii_ioctl_data *mii = NULL;
-       struct bond_opt_value newval;
-       struct net *net;
-       int res = 0;
+       int res;
 
-       netdev_dbg(bond_dev, "bond_ioctl: cmd=%d\n", cmd);
+       netdev_dbg(bond_dev, "bond_eth_ioctl: cmd=%d\n", cmd);
 
        switch (cmd) {
        case SIOCGMIIPHY:
                }
 
                return 0;
+       default:
+               res = -EOPNOTSUPP;
+       }
+
+       return res;
+}
+
+static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
+{
+       struct bonding *bond = netdev_priv(bond_dev);
+       struct net_device *slave_dev = NULL;
+       struct ifbond k_binfo;
+       struct ifbond __user *u_binfo = NULL;
+       struct ifslave k_sinfo;
+       struct ifslave __user *u_sinfo = NULL;
+       struct bond_opt_value newval;
+       struct net *net;
+       int res = 0;
+
+       netdev_dbg(bond_dev, "bond_ioctl: cmd=%d\n", cmd);
+
+       switch (cmd) {
        case SIOCBONDINFOQUERY:
                u_binfo = (struct ifbond __user *)ifr->ifr_data;
 
        .ndo_start_xmit         = bond_start_xmit,
        .ndo_select_queue       = bond_select_queue,
        .ndo_get_stats64        = bond_get_stats,
+       .ndo_eth_ioctl          = bond_eth_ioctl,
        .ndo_do_ioctl           = bond_do_ioctl,
        .ndo_siocdevprivate     = bond_siocdevprivate,
        .ndo_change_rx_flags    = bond_change_rx_flags,
 
        .ndo_start_xmit         = el3_start_xmit,
        .ndo_tx_timeout         = el3_tx_timeout,
        .ndo_get_stats          = el3_get_stats,
-       .ndo_do_ioctl           = el3_ioctl,
+       .ndo_eth_ioctl          = el3_ioctl,
        .ndo_set_rx_mode        = set_multicast_list,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_tx_timeout         = vortex_tx_timeout,
        .ndo_get_stats          = vortex_get_stats,
 #ifdef CONFIG_PCI
-       .ndo_do_ioctl           = vortex_ioctl,
+       .ndo_eth_ioctl          = vortex_ioctl,
 #endif
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_tx_timeout         = vortex_tx_timeout,
        .ndo_get_stats          = vortex_get_stats,
 #ifdef CONFIG_PCI
-       .ndo_do_ioctl           = vortex_ioctl,
+       .ndo_eth_ioctl          = vortex_ioctl,
 #endif
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_set_mac_address    = eth_mac_addr,
 
 static const struct net_device_ops ax_netdev_ops = {
        .ndo_open               = ax_open,
        .ndo_stop               = ax_close,
-       .ndo_do_ioctl           = ax_ioctl,
+       .ndo_eth_ioctl          = ax_ioctl,
 
        .ndo_start_xmit         = ax_ei_start_xmit,
        .ndo_tx_timeout         = ax_ei_tx_timeout,
 
 static const struct net_device_ops axnet_netdev_ops = {
        .ndo_open               = axnet_open,
        .ndo_stop               = axnet_close,
-       .ndo_do_ioctl           = axnet_ioctl,
+       .ndo_eth_ioctl          = axnet_ioctl,
        .ndo_start_xmit         = axnet_start_xmit,
        .ndo_tx_timeout         = axnet_tx_timeout,
        .ndo_get_stats          = get_stats,
 
        .ndo_set_config         = set_config,
        .ndo_start_xmit         = ei_start_xmit,
        .ndo_get_stats          = ei_get_stats,
-       .ndo_do_ioctl           = ei_ioctl,
+       .ndo_eth_ioctl          = ei_ioctl,
        .ndo_set_rx_mode        = ei_set_multicast_list,
        .ndo_tx_timeout         = ei_tx_timeout,
        .ndo_set_mac_address    = eth_mac_addr,
 
        return owl_emac_setup_frame_xmit(netdev_priv(netdev));
 }
 
-static int owl_emac_ndo_do_ioctl(struct net_device *netdev,
-                                struct ifreq *req, int cmd)
+static int owl_emac_ndo_eth_ioctl(struct net_device *netdev,
+                                 struct ifreq *req, int cmd)
 {
        if (!netif_running(netdev))
                return -EINVAL;
        .ndo_set_rx_mode        = owl_emac_ndo_set_rx_mode,
        .ndo_set_mac_address    = owl_emac_ndo_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = owl_emac_ndo_do_ioctl,
+       .ndo_eth_ioctl          = owl_emac_ndo_eth_ioctl,
        .ndo_tx_timeout         = owl_emac_ndo_tx_timeout,
        .ndo_get_stats          = owl_emac_ndo_get_stats,
 };
 
        .ndo_tx_timeout         = tx_timeout,
        .ndo_get_stats          = get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 #ifdef VLAN_SUPPORT
 
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_get_stats          = et131x_stats,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
 };
 
 static int et131x_pci_setup(struct pci_dev *pdev,
 
        .ndo_start_xmit         = emac_start_xmit,
        .ndo_tx_timeout         = emac_timeout,
        .ndo_set_rx_mode        = emac_set_rx_mode,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = emac_set_mac_address,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_set_rx_mode        = amd8111e_set_multicast_list,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = amd8111e_set_mac_address,
-       .ndo_do_ioctl           = amd8111e_ioctl,
+       .ndo_eth_ioctl          = amd8111e_ioctl,
        .ndo_change_mtu         = amd8111e_change_mtu,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller     = amd8111e_poll,
 
        .ndo_stop               = au1000_close,
        .ndo_start_xmit         = au1000_tx,
        .ndo_set_rx_mode        = au1000_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_tx_timeout         = au1000_tx_timeout,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_tx_timeout         = pcnet32_tx_timeout,
        .ndo_get_stats          = pcnet32_get_stats,
        .ndo_set_rx_mode        = pcnet32_set_multicast_list,
-       .ndo_do_ioctl           = pcnet32_ioctl,
+       .ndo_eth_ioctl          = pcnet32_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_set_rx_mode        = xgbe_set_rx_mode,
        .ndo_set_mac_address    = xgbe_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = xgbe_ioctl,
+       .ndo_eth_ioctl          = xgbe_ioctl,
        .ndo_change_mtu         = xgbe_change_mtu,
        .ndo_tx_timeout         = xgbe_tx_timeout,
        .ndo_get_stats64        = xgbe_get_stats64,
 
        .ndo_change_mtu = aq_ndev_change_mtu,
        .ndo_set_mac_address = aq_ndev_set_mac_address,
        .ndo_set_features = aq_ndev_set_features,
-       .ndo_do_ioctl = aq_ndev_ioctl,
+       .ndo_eth_ioctl = aq_ndev_ioctl,
        .ndo_vlan_rx_add_vid = aq_ndo_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid = aq_ndo_vlan_rx_kill_vid,
        .ndo_setup_tc = aq_ndo_setup_tc,
 
        .ndo_set_mac_address    = arc_emac_set_address,
        .ndo_get_stats          = arc_emac_stats,
        .ndo_set_rx_mode        = arc_emac_set_rx_mode,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = arc_emac_poll_controller,
 #endif
 
        .ndo_open               = ag71xx_open,
        .ndo_stop               = ag71xx_stop,
        .ndo_start_xmit         = ag71xx_hard_start_xmit,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
        .ndo_tx_timeout         = ag71xx_tx_timeout,
        .ndo_change_mtu         = ag71xx_change_mtu,
        .ndo_set_mac_address    = eth_mac_addr,
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = alx_set_mac_address,
        .ndo_change_mtu         = alx_change_mtu,
-       .ndo_do_ioctl           = alx_ioctl,
+       .ndo_eth_ioctl           = alx_ioctl,
        .ndo_tx_timeout         = alx_tx_timeout,
        .ndo_fix_features       = alx_fix_features,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_change_mtu         = atl1c_change_mtu,
        .ndo_fix_features       = atl1c_fix_features,
        .ndo_set_features       = atl1c_set_features,
-       .ndo_do_ioctl           = atl1c_ioctl,
+       .ndo_eth_ioctl          = atl1c_ioctl,
        .ndo_tx_timeout         = atl1c_tx_timeout,
        .ndo_get_stats          = atl1c_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_fix_features       = atl1e_fix_features,
        .ndo_set_features       = atl1e_set_features,
        .ndo_change_mtu         = atl1e_change_mtu,
-       .ndo_do_ioctl           = atl1e_ioctl,
+       .ndo_eth_ioctl          = atl1e_ioctl,
        .ndo_tx_timeout         = atl1e_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = atl1e_netpoll,
 
        .ndo_change_mtu         = atl1_change_mtu,
        .ndo_fix_features       = atlx_fix_features,
        .ndo_set_features       = atlx_set_features,
-       .ndo_do_ioctl           = atlx_ioctl,
+       .ndo_eth_ioctl          = atlx_ioctl,
        .ndo_tx_timeout         = atlx_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = atl1_poll_controller,
 
        .ndo_change_mtu         = atl2_change_mtu,
        .ndo_fix_features       = atl2_fix_features,
        .ndo_set_features       = atl2_set_features,
-       .ndo_do_ioctl           = atl2_ioctl,
+       .ndo_eth_ioctl          = atl2_ioctl,
        .ndo_tx_timeout         = atl2_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = atl2_poll_controller,
 
        .ndo_set_rx_mode        = b44_set_rx_mode,
        .ndo_set_mac_address    = b44_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = b44_ioctl,
+       .ndo_eth_ioctl          = b44_ioctl,
        .ndo_tx_timeout         = b44_tx_timeout,
        .ndo_change_mtu         = b44_change_mtu,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = bcm_enet_start_xmit,
        .ndo_set_mac_address    = bcm_enet_set_mac_address,
        .ndo_set_rx_mode        = bcm_enet_set_multicast_list,
-       .ndo_do_ioctl           = bcm_enet_ioctl,
+       .ndo_eth_ioctl          = bcm_enet_ioctl,
        .ndo_change_mtu         = bcm_enet_change_mtu,
 };
 
        .ndo_stop               = bcm_enetsw_stop,
        .ndo_start_xmit         = bcm_enet_start_xmit,
        .ndo_change_mtu         = bcm_enet_change_mtu,
-       .ndo_do_ioctl           = bcm_enetsw_ioctl,
+       .ndo_eth_ioctl          = bcm_enetsw_ioctl,
 };
 
 
 
        .ndo_set_rx_mode        = bgmac_set_rx_mode,
        .ndo_set_mac_address    = bgmac_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl           = phy_do_ioctl_running,
        .ndo_change_mtu         = bgmac_change_mtu,
 };
 
 
        .ndo_stop               = bnx2_close,
        .ndo_get_stats64        = bnx2_get_stats64,
        .ndo_set_rx_mode        = bnx2_set_rx_mode,
-       .ndo_do_ioctl           = bnx2_ioctl,
+       .ndo_eth_ioctl          = bnx2_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = bnx2_change_mac_addr,
        .ndo_change_mtu         = bnx2_change_mtu,
 
        .ndo_set_rx_mode        = bnx2x_set_rx_mode,
        .ndo_set_mac_address    = bnx2x_change_mac_addr,
        .ndo_validate_addr      = bnx2x_validate_addr,
-       .ndo_do_ioctl           = bnx2x_ioctl,
+       .ndo_eth_ioctl          = bnx2x_ioctl,
        .ndo_change_mtu         = bnx2x_change_mtu,
        .ndo_fix_features       = bnx2x_fix_features,
        .ndo_set_features       = bnx2x_set_features,
 
        .ndo_stop               = bnxt_close,
        .ndo_get_stats64        = bnxt_get_stats64,
        .ndo_set_rx_mode        = bnxt_set_rx_mode,
-       .ndo_do_ioctl           = bnxt_ioctl,
+       .ndo_eth_ioctl          = bnxt_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = bnxt_change_mac_addr,
        .ndo_change_mtu         = bnxt_change_mtu,
 
        .ndo_tx_timeout         = bcmgenet_timeout,
        .ndo_set_rx_mode        = bcmgenet_set_rx_mode,
        .ndo_set_mac_address    = bcmgenet_set_mac_addr,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_features       = bcmgenet_set_features,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = bcmgenet_poll_controller,
 
        .ndo_start_xmit         = sbmac_start_tx,
        .ndo_set_rx_mode        = sbmac_set_rx_mode,
        .ndo_tx_timeout         = sbmac_tx_timeout,
-       .ndo_do_ioctl           = sbmac_mii_ioctl,
+       .ndo_eth_ioctl          = sbmac_mii_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = tg3_set_rx_mode,
        .ndo_set_mac_address    = tg3_set_mac_addr,
-       .ndo_do_ioctl           = tg3_ioctl,
+       .ndo_eth_ioctl          = tg3_ioctl,
        .ndo_tx_timeout         = tg3_tx_timeout,
        .ndo_change_mtu         = tg3_change_mtu,
        .ndo_fix_features       = tg3_fix_features,
 
        .ndo_start_xmit         = macb_start_xmit,
        .ndo_set_rx_mode        = macb_set_rx_mode,
        .ndo_get_stats          = macb_get_stats,
-       .ndo_do_ioctl           = macb_ioctl,
+       .ndo_eth_ioctl          = macb_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_change_mtu         = macb_change_mtu,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_get_stats          = macb_get_stats,
        .ndo_set_rx_mode        = macb_set_rx_mode,
        .ndo_set_mac_address    = eth_mac_addr,
-       .ndo_do_ioctl           = macb_ioctl,
+       .ndo_eth_ioctl          = macb_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = at91ether_poll_controller,
 
        .ndo_vlan_rx_add_vid    = liquidio_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = liquidio_vlan_rx_kill_vid,
        .ndo_change_mtu         = liquidio_change_mtu,
-       .ndo_do_ioctl           = liquidio_ioctl,
+       .ndo_eth_ioctl          = liquidio_ioctl,
        .ndo_fix_features       = liquidio_fix_features,
        .ndo_set_features       = liquidio_set_features,
        .ndo_set_vf_mac         = liquidio_set_vf_mac,
 
        .ndo_vlan_rx_add_vid    = liquidio_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = liquidio_vlan_rx_kill_vid,
        .ndo_change_mtu         = liquidio_change_mtu,
-       .ndo_do_ioctl           = liquidio_ioctl,
+       .ndo_eth_ioctl          = liquidio_ioctl,
        .ndo_fix_features       = liquidio_fix_features,
        .ndo_set_features       = liquidio_set_features,
 };
 
        .ndo_start_xmit =               octeon_mgmt_xmit,
        .ndo_set_rx_mode =              octeon_mgmt_set_rx_filtering,
        .ndo_set_mac_address =          octeon_mgmt_set_mac_address,
-       .ndo_do_ioctl =                 octeon_mgmt_ioctl,
+       .ndo_eth_ioctl =                        octeon_mgmt_ioctl,
        .ndo_change_mtu =               octeon_mgmt_change_mtu,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller =          octeon_mgmt_poll_controller,
 
        .ndo_fix_features       = nicvf_fix_features,
        .ndo_set_features       = nicvf_set_features,
        .ndo_bpf                = nicvf_xdp,
-       .ndo_do_ioctl           = nicvf_ioctl,
+       .ndo_eth_ioctl           = nicvf_ioctl,
        .ndo_set_rx_mode        = nicvf_set_rx_mode,
 };
 
 
        .ndo_get_stats          = t1_get_stats,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = t1_set_rxmode,
-       .ndo_do_ioctl           = t1_ioctl,
+       .ndo_eth_ioctl          = t1_ioctl,
        .ndo_change_mtu         = t1_change_mtu,
        .ndo_set_mac_address    = t1_set_mac_addr,
        .ndo_fix_features       = t1_fix_features,
 
        .ndo_get_stats          = cxgb_get_stats,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = cxgb_set_rxmode,
-       .ndo_do_ioctl           = cxgb_ioctl,
+       .ndo_eth_ioctl          = cxgb_ioctl,
        .ndo_siocdevprivate     = cxgb_siocdevprivate,
        .ndo_change_mtu         = cxgb_change_mtu,
        .ndo_set_mac_address    = cxgb_set_mac_addr,
 
        .ndo_set_mac_address  = cxgb_set_mac_addr,
        .ndo_set_features     = cxgb_set_features,
        .ndo_validate_addr    = eth_validate_addr,
-       .ndo_do_ioctl         = cxgb_ioctl,
+       .ndo_eth_ioctl         = cxgb_ioctl,
        .ndo_change_mtu       = cxgb_change_mtu,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller  = cxgb_netpoll,
 
        .ndo_set_rx_mode        = cxgb4vf_set_rxmode,
        .ndo_set_mac_address    = cxgb4vf_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = cxgb4vf_do_ioctl,
+       .ndo_eth_ioctl          = cxgb4vf_do_ioctl,
        .ndo_change_mtu         = cxgb4vf_change_mtu,
        .ndo_fix_features       = cxgb4vf_fix_features,
        .ndo_set_features       = cxgb4vf_set_features,
 
        .ndo_open               = ep93xx_open,
        .ndo_stop               = ep93xx_close,
        .ndo_start_xmit         = ep93xx_xmit,
-       .ndo_do_ioctl           = ep93xx_ioctl,
+       .ndo_eth_ioctl          = ep93xx_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 };
 
        .ndo_start_xmit         = dm9000_start_xmit,
        .ndo_tx_timeout         = dm9000_timeout,
        .ndo_set_rx_mode        = dm9000_hash_table,
-       .ndo_do_ioctl           = dm9000_ioctl,
+       .ndo_eth_ioctl          = dm9000_ioctl,
        .ndo_set_features       = dm9000_set_features,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 
        .ndo_tx_timeout         = tulip_tx_timeout,
        .ndo_stop               = tulip_close,
        .ndo_get_stats          = tulip_get_stats,
-       .ndo_do_ioctl           = private_ioctl,
+       .ndo_eth_ioctl          = private_ioctl,
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_start_xmit         = start_tx,
        .ndo_get_stats          = get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_tx_timeout         = tx_timeout,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_set_rx_mode        = set_multicast,
-       .ndo_do_ioctl           = rio_ioctl,
+       .ndo_eth_ioctl          = rio_ioctl,
        .ndo_tx_timeout         = rio_tx_timeout,
 };
 
 
        .ndo_start_xmit         = start_tx,
        .ndo_get_stats          = get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_tx_timeout         = tx_timeout,
        .ndo_change_mtu         = change_mtu,
        .ndo_set_mac_address    = sundance_set_mac_addr,
 
        .ndo_stop               = dnet_close,
        .ndo_get_stats          = dnet_get_stats,
        .ndo_start_xmit         = dnet_start_xmit,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
 static const struct net_device_ops ethoc_netdev_ops = {
        .ndo_open = ethoc_open,
        .ndo_stop = ethoc_stop,
-       .ndo_do_ioctl = ethoc_ioctl,
+       .ndo_eth_ioctl = ethoc_ioctl,
        .ndo_set_mac_address = ethoc_set_mac_address,
        .ndo_set_rx_mode = ethoc_set_multicast_list,
        .ndo_change_mtu = ethoc_change_mtu,
 
        .ndo_start_xmit         = ftgmac100_hard_start_xmit,
        .ndo_set_mac_address    = ftgmac100_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
        .ndo_tx_timeout         = ftgmac100_tx_timeout,
        .ndo_set_rx_mode        = ftgmac100_set_rx_mode,
        .ndo_set_features       = ftgmac100_set_features,
 
        .ndo_start_xmit         = ftmac100_hard_start_xmit,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = ftmac100_do_ioctl,
+       .ndo_eth_ioctl          = ftmac100_do_ioctl,
 };
 
 /******************************************************************************
 
        .ndo_start_xmit         = start_tx,
        .ndo_get_stats          = get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = mii_ioctl,
+       .ndo_eth_ioctl          = mii_ioctl,
        .ndo_tx_timeout         = fealnx_tx_timeout,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_set_mac_address = dpaa_set_mac_address,
        .ndo_validate_addr = eth_validate_addr,
        .ndo_set_rx_mode = dpaa_set_rx_mode,
-       .ndo_do_ioctl = dpaa_ioctl,
+       .ndo_eth_ioctl = dpaa_ioctl,
        .ndo_setup_tc = dpaa_setup_tc,
        .ndo_change_mtu = dpaa_change_mtu,
        .ndo_bpf = dpaa_xdp,
 
        .ndo_get_stats64 = dpaa2_eth_get_stats,
        .ndo_set_rx_mode = dpaa2_eth_set_rx_mode,
        .ndo_set_features = dpaa2_eth_set_features,
-       .ndo_do_ioctl = dpaa2_eth_ioctl,
+       .ndo_eth_ioctl = dpaa2_eth_ioctl,
        .ndo_change_mtu = dpaa2_eth_change_mtu,
        .ndo_bpf = dpaa2_eth_xdp,
        .ndo_xdp_xmit = dpaa2_eth_xdp_xmit,
 
        .ndo_set_vf_vlan        = enetc_pf_set_vf_vlan,
        .ndo_set_vf_spoofchk    = enetc_pf_set_vf_spoofchk,
        .ndo_set_features       = enetc_pf_set_features,
-       .ndo_do_ioctl           = enetc_ioctl,
+       .ndo_eth_ioctl          = enetc_ioctl,
        .ndo_setup_tc           = enetc_setup_tc,
        .ndo_bpf                = enetc_setup_bpf,
        .ndo_xdp_xmit           = enetc_xdp_xmit,
 
        .ndo_get_stats          = enetc_get_stats,
        .ndo_set_mac_address    = enetc_vf_set_mac_addr,
        .ndo_set_features       = enetc_vf_set_features,
-       .ndo_do_ioctl           = enetc_ioctl,
+       .ndo_eth_ioctl          = enetc_ioctl,
        .ndo_setup_tc           = enetc_setup_tc,
 };
 
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_tx_timeout         = fec_timeout,
        .ndo_set_mac_address    = fec_set_mac_address,
-       .ndo_do_ioctl           = fec_enet_ioctl,
+       .ndo_eth_ioctl          = fec_enet_ioctl,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = fec_poll_controller,
 #endif
 
        .ndo_set_rx_mode = mpc52xx_fec_set_multicast_list,
        .ndo_set_mac_address = mpc52xx_fec_set_mac_address,
        .ndo_validate_addr = eth_validate_addr,
-       .ndo_do_ioctl = phy_do_ioctl,
+       .ndo_eth_ioctl = phy_do_ioctl,
        .ndo_tx_timeout = mpc52xx_fec_tx_timeout,
        .ndo_get_stats = mpc52xx_fec_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = fs_enet_start_xmit,
        .ndo_tx_timeout         = fs_timeout,
        .ndo_set_rx_mode        = fs_set_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_set_features = gfar_set_features,
        .ndo_set_rx_mode = gfar_set_multi,
        .ndo_tx_timeout = gfar_timeout,
-       .ndo_do_ioctl = gfar_ioctl,
+       .ndo_eth_ioctl = gfar_ioctl,
        .ndo_get_stats64 = gfar_get_stats64,
        .ndo_change_carrier = fixed_phy_change_carrier,
        .ndo_set_mac_address = gfar_set_mac_addr,
 
        .ndo_set_mac_address    = ucc_geth_set_mac_addr,
        .ndo_set_rx_mode        = ucc_geth_set_multi,
        .ndo_tx_timeout         = ucc_geth_timeout,
-       .ndo_do_ioctl           = ucc_geth_ioctl,
+       .ndo_eth_ioctl          = ucc_geth_ioctl,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = ucc_netpoll,
 #endif
 
        .ndo_open               = hisi_femac_net_open,
        .ndo_stop               = hisi_femac_net_close,
        .ndo_start_xmit         = hisi_femac_net_xmit,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_mac_address    = hisi_femac_set_mac_address,
        .ndo_set_rx_mode        = hisi_femac_net_set_rx_mode,
 };
 
        .ndo_tx_timeout = hns_nic_net_timeout,
        .ndo_set_mac_address = hns_nic_net_set_mac_address,
        .ndo_change_mtu = hns_nic_change_mtu,
-       .ndo_do_ioctl = phy_do_ioctl_running,
+       .ndo_eth_ioctl = phy_do_ioctl_running,
        .ndo_set_features = hns_nic_set_features,
        .ndo_fix_features = hns_nic_fix_features,
        .ndo_get_stats64 = hns_nic_get_stats64,
 
        .ndo_start_xmit         = hns3_nic_net_xmit,
        .ndo_tx_timeout         = hns3_nic_net_timeout,
        .ndo_set_mac_address    = hns3_nic_net_set_mac_address,
-       .ndo_do_ioctl           = hns3_nic_do_ioctl,
+       .ndo_eth_ioctl          = hns3_nic_do_ioctl,
        .ndo_change_mtu         = hns3_nic_change_mtu,
        .ndo_set_features       = hns3_nic_set_features,
        .ndo_features_check     = hns3_features_check,
 
        .ndo_stop               = emac_close,
        .ndo_get_stats          = emac_stats,
        .ndo_set_rx_mode        = emac_set_multicast_list,
-       .ndo_do_ioctl           = emac_ioctl,
+       .ndo_eth_ioctl          = emac_ioctl,
        .ndo_tx_timeout         = emac_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = emac_set_mac_address,
        .ndo_stop               = emac_close,
        .ndo_get_stats          = emac_stats,
        .ndo_set_rx_mode        = emac_set_multicast_list,
-       .ndo_do_ioctl           = emac_ioctl,
+       .ndo_eth_ioctl          = emac_ioctl,
        .ndo_tx_timeout         = emac_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = emac_set_mac_address,
 
        .ndo_stop               = ibmveth_close,
        .ndo_start_xmit         = ibmveth_start_xmit,
        .ndo_set_rx_mode        = ibmveth_set_multicast_list,
-       .ndo_do_ioctl           = ibmveth_ioctl,
+       .ndo_eth_ioctl          = ibmveth_ioctl,
        .ndo_change_mtu         = ibmveth_change_mtu,
        .ndo_fix_features       = ibmveth_fix_features,
        .ndo_set_features       = ibmveth_set_features,
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = e100_set_multicast_list,
        .ndo_set_mac_address    = e100_set_mac_address,
-       .ndo_do_ioctl           = e100_do_ioctl,
+       .ndo_eth_ioctl          = e100_do_ioctl,
        .ndo_tx_timeout         = e100_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = e100_netpoll,
 
        .ndo_set_mac_address    = e1000_set_mac,
        .ndo_tx_timeout         = e1000_tx_timeout,
        .ndo_change_mtu         = e1000_change_mtu,
-       .ndo_do_ioctl           = e1000_ioctl,
+       .ndo_eth_ioctl          = e1000_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_vlan_rx_add_vid    = e1000_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = e1000_vlan_rx_kill_vid,
 
        .ndo_set_rx_mode        = e1000e_set_rx_mode,
        .ndo_set_mac_address    = e1000_set_mac,
        .ndo_change_mtu         = e1000_change_mtu,
-       .ndo_do_ioctl           = e1000_ioctl,
+       .ndo_eth_ioctl          = e1000_ioctl,
        .ndo_tx_timeout         = e1000_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
 
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = i40e_set_mac,
        .ndo_change_mtu         = i40e_change_mtu,
-       .ndo_do_ioctl           = i40e_ioctl,
+       .ndo_eth_ioctl          = i40e_ioctl,
        .ndo_tx_timeout         = i40e_tx_timeout,
        .ndo_vlan_rx_add_vid    = i40e_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = i40e_vlan_rx_kill_vid,
 
 }
 
 /**
- * ice_do_ioctl - Access the hwtstamp interface
+ * ice_eth_ioctl - Access the hwtstamp interface
  * @netdev: network interface device structure
  * @ifr: interface request data
  * @cmd: ioctl command
  */
-static int ice_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
+static int ice_eth_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
 {
        struct ice_netdev_priv *np = netdev_priv(netdev);
        struct ice_pf *pf = np->vsi->back;
        .ndo_change_mtu = ice_change_mtu,
        .ndo_get_stats64 = ice_get_stats64,
        .ndo_set_tx_maxrate = ice_set_tx_maxrate,
-       .ndo_do_ioctl = ice_do_ioctl,
+       .ndo_eth_ioctl = ice_eth_ioctl,
        .ndo_set_vf_spoofchk = ice_set_vf_spoofchk,
        .ndo_set_vf_mac = ice_set_vf_mac,
        .ndo_get_vf_config = ice_get_vf_cfg,
 
        .ndo_set_rx_mode        = igb_set_rx_mode,
        .ndo_set_mac_address    = igb_set_mac,
        .ndo_change_mtu         = igb_change_mtu,
-       .ndo_do_ioctl           = igb_ioctl,
+       .ndo_eth_ioctl          = igb_ioctl,
        .ndo_tx_timeout         = igb_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_vlan_rx_add_vid    = igb_vlan_rx_add_vid,
 
        .ndo_set_rx_mode        = igbvf_set_rx_mode,
        .ndo_set_mac_address    = igbvf_set_mac,
        .ndo_change_mtu         = igbvf_change_mtu,
-       .ndo_do_ioctl           = igbvf_ioctl,
+       .ndo_eth_ioctl          = igbvf_ioctl,
        .ndo_tx_timeout         = igbvf_tx_timeout,
        .ndo_vlan_rx_add_vid    = igbvf_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = igbvf_vlan_rx_kill_vid,
 
        .ndo_fix_features       = igc_fix_features,
        .ndo_set_features       = igc_set_features,
        .ndo_features_check     = igc_features_check,
-       .ndo_do_ioctl           = igc_ioctl,
+       .ndo_eth_ioctl          = igc_ioctl,
        .ndo_setup_tc           = igc_setup_tc,
        .ndo_bpf                = igc_bpf,
        .ndo_xdp_xmit           = igc_xdp_xmit,
 
        .ndo_set_tx_maxrate     = ixgbe_tx_maxrate,
        .ndo_vlan_rx_add_vid    = ixgbe_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = ixgbe_vlan_rx_kill_vid,
-       .ndo_do_ioctl           = ixgbe_ioctl,
+       .ndo_eth_ioctl          = ixgbe_ioctl,
        .ndo_set_vf_mac         = ixgbe_ndo_set_vf_mac,
        .ndo_set_vf_vlan        = ixgbe_ndo_set_vf_vlan,
        .ndo_set_vf_rate        = ixgbe_ndo_set_vf_bw,
 
        .ndo_open               = jme_open,
        .ndo_stop               = jme_close,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = jme_ioctl,
+       .ndo_eth_ioctl          = jme_ioctl,
        .ndo_start_xmit         = jme_start_xmit,
        .ndo_set_mac_address    = jme_set_macaddr,
        .ndo_set_rx_mode        = jme_set_multi,
 
        .ndo_start_xmit         = korina_send_packet,
        .ndo_set_rx_mode        = korina_multicast_list,
        .ndo_tx_timeout         = korina_tx_timeout,
-       .ndo_do_ioctl           = korina_ioctl,
+       .ndo_eth_ioctl          = korina_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_stop = ltq_etop_stop,
        .ndo_start_xmit = ltq_etop_tx,
        .ndo_change_mtu = ltq_etop_change_mtu,
-       .ndo_do_ioctl = phy_do_ioctl,
+       .ndo_eth_ioctl = phy_do_ioctl,
        .ndo_set_mac_address = ltq_etop_set_mac_address,
        .ndo_validate_addr = eth_validate_addr,
        .ndo_set_rx_mode = ltq_etop_set_multicast_list,
 
        .ndo_set_rx_mode        = mv643xx_eth_set_rx_mode,
        .ndo_set_mac_address    = mv643xx_eth_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = mv643xx_eth_ioctl,
+       .ndo_eth_ioctl          = mv643xx_eth_ioctl,
        .ndo_change_mtu         = mv643xx_eth_change_mtu,
        .ndo_set_features       = mv643xx_eth_set_features,
        .ndo_tx_timeout         = mv643xx_eth_tx_timeout,
 
        .ndo_change_mtu      = mvneta_change_mtu,
        .ndo_fix_features    = mvneta_fix_features,
        .ndo_get_stats64     = mvneta_get_stats64,
-       .ndo_do_ioctl        = mvneta_ioctl,
+       .ndo_eth_ioctl        = mvneta_ioctl,
        .ndo_bpf             = mvneta_xdp,
        .ndo_xdp_xmit        = mvneta_xdp_xmit,
        .ndo_setup_tc        = mvneta_setup_tc,
 
        .ndo_set_mac_address    = mvpp2_set_mac_address,
        .ndo_change_mtu         = mvpp2_change_mtu,
        .ndo_get_stats64        = mvpp2_get_stats64,
-       .ndo_do_ioctl           = mvpp2_ioctl,
+       .ndo_eth_ioctl          = mvpp2_ioctl,
        .ndo_vlan_rx_add_vid    = mvpp2_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = mvpp2_vlan_rx_kill_vid,
        .ndo_set_features       = mvpp2_set_features,
 
        .ndo_set_features       = otx2_set_features,
        .ndo_tx_timeout         = otx2_tx_timeout,
        .ndo_get_stats64        = otx2_get_stats64,
-       .ndo_do_ioctl           = otx2_ioctl,
+       .ndo_eth_ioctl          = otx2_ioctl,
        .ndo_set_vf_mac         = otx2_set_vf_mac,
        .ndo_set_vf_vlan        = otx2_set_vf_vlan,
        .ndo_get_vf_config      = otx2_get_vf_config,
 
        .ndo_set_rx_mode        = pxa168_eth_set_rx_mode,
        .ndo_set_mac_address    = pxa168_eth_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
        .ndo_change_mtu         = pxa168_eth_change_mtu,
        .ndo_tx_timeout         = pxa168_eth_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_open               = skge_up,
        .ndo_stop               = skge_down,
        .ndo_start_xmit         = skge_xmit_frame,
-       .ndo_do_ioctl           = skge_ioctl,
+       .ndo_eth_ioctl          = skge_ioctl,
        .ndo_get_stats          = skge_get_stats,
        .ndo_tx_timeout         = skge_tx_timeout,
        .ndo_change_mtu         = skge_change_mtu,
 
        .ndo_open               = sky2_open,
        .ndo_stop               = sky2_close,
        .ndo_start_xmit         = sky2_xmit_frame,
-       .ndo_do_ioctl           = sky2_ioctl,
+       .ndo_eth_ioctl          = sky2_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = sky2_set_mac_address,
        .ndo_set_rx_mode        = sky2_set_multicast,
        .ndo_open               = sky2_open,
        .ndo_stop               = sky2_close,
        .ndo_start_xmit         = sky2_xmit_frame,
-       .ndo_do_ioctl           = sky2_ioctl,
+       .ndo_eth_ioctl          = sky2_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = sky2_set_mac_address,
        .ndo_set_rx_mode        = sky2_set_multicast,
 
        .ndo_start_xmit         = mtk_start_xmit,
        .ndo_set_mac_address    = mtk_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = mtk_do_ioctl,
+       .ndo_eth_ioctl          = mtk_do_ioctl,
        .ndo_change_mtu         = mtk_change_mtu,
        .ndo_tx_timeout         = mtk_tx_timeout,
        .ndo_get_stats64        = mtk_get_stats64,
 
        .ndo_start_xmit         = mtk_star_netdev_start_xmit,
        .ndo_get_stats64        = mtk_star_netdev_get_stats64,
        .ndo_set_rx_mode        = mtk_star_set_rx_mode,
-       .ndo_do_ioctl           = mtk_star_netdev_ioctl,
+       .ndo_eth_ioctl          = mtk_star_netdev_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
        .ndo_set_mac_address    = mlx4_en_set_mac,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_change_mtu         = mlx4_en_change_mtu,
-       .ndo_do_ioctl           = mlx4_en_ioctl,
+       .ndo_eth_ioctl          = mlx4_en_ioctl,
        .ndo_tx_timeout         = mlx4_en_tx_timeout,
        .ndo_vlan_rx_add_vid    = mlx4_en_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = mlx4_en_vlan_rx_kill_vid,
 
        .ndo_set_features        = mlx5e_set_features,
        .ndo_fix_features        = mlx5e_fix_features,
        .ndo_change_mtu          = mlx5e_change_nic_mtu,
-       .ndo_do_ioctl            = mlx5e_ioctl,
+       .ndo_eth_ioctl            = mlx5e_ioctl,
        .ndo_set_tx_maxrate      = mlx5e_set_tx_maxrate,
        .ndo_features_check      = mlx5e_features_check,
        .ndo_tx_timeout          = mlx5e_tx_timeout,
 
        .ndo_init                = mlx5i_dev_init,
        .ndo_uninit              = mlx5i_dev_cleanup,
        .ndo_change_mtu          = mlx5i_change_mtu,
-       .ndo_do_ioctl            = mlx5i_ioctl,
+       .ndo_eth_ioctl            = mlx5i_ioctl,
 };
 
 /* IPoIB mlx5 netdev profile */
 
        .ndo_get_stats64         = mlx5i_get_stats,
        .ndo_uninit              = mlx5i_pkey_dev_cleanup,
        .ndo_change_mtu          = mlx5i_pkey_change_mtu,
-       .ndo_do_ioctl            = mlx5i_pkey_ioctl,
+       .ndo_eth_ioctl            = mlx5i_pkey_ioctl,
 };
 
 /* Child NDOs */
 
        return 0;
 }
 
-static int mlxbf_gige_do_ioctl(struct net_device *netdev,
+static int mlxbf_gige_eth_ioctl(struct net_device *netdev,
                               struct ifreq *ifr, int cmd)
 {
        if (!(netif_running(netdev)))
        .ndo_start_xmit         = mlxbf_gige_start_xmit,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = mlxbf_gige_do_ioctl,
+       .ndo_eth_ioctl          = mlxbf_gige_eth_ioctl,
        .ndo_set_rx_mode        = mlxbf_gige_set_rx_mode,
        .ndo_get_stats64        = mlxbf_gige_get_stats64,
 };
 
        .ndo_vlan_rx_kill_vid   = mlxsw_sp_port_kill_vid,
        .ndo_set_features       = mlxsw_sp_set_features,
        .ndo_get_devlink_port   = mlxsw_sp_port_get_devlink_port,
-       .ndo_do_ioctl           = mlxsw_sp_port_ioctl,
+       .ndo_eth_ioctl          = mlxsw_sp_port_ioctl,
 };
 
 static int
 
 static const struct net_device_ops ks8851_netdev_ops = {
        .ndo_open               = ks8851_net_open,
        .ndo_stop               = ks8851_net_stop,
-       .ndo_do_ioctl           = ks8851_net_ioctl,
+       .ndo_eth_ioctl          = ks8851_net_ioctl,
        .ndo_start_xmit         = ks8851_start_xmit,
        .ndo_set_mac_address    = ks8851_set_mac_address,
        .ndo_set_rx_mode        = ks8851_set_rx_mode,
 
        .ndo_set_features       = netdev_set_features,
        .ndo_set_mac_address    = netdev_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_set_rx_mode        = netdev_set_rx_mode,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = netdev_netpoll,
 
        .ndo_open               = lan743x_netdev_open,
        .ndo_stop               = lan743x_netdev_close,
        .ndo_start_xmit         = lan743x_netdev_xmit_frame,
-       .ndo_do_ioctl           = lan743x_netdev_ioctl,
+       .ndo_eth_ioctl          = lan743x_netdev_ioctl,
        .ndo_set_rx_mode        = lan743x_netdev_set_multicast,
        .ndo_change_mtu         = lan743x_netdev_change_mtu,
        .ndo_get_stats64        = lan743x_netdev_get_stats64,
 
        .ndo_vlan_rx_kill_vid           = ocelot_vlan_rx_kill_vid,
        .ndo_set_features               = ocelot_set_features,
        .ndo_setup_tc                   = ocelot_setup_tc,
-       .ndo_do_ioctl                   = ocelot_ioctl,
+       .ndo_eth_ioctl                  = ocelot_ioctl,
        .ndo_get_devlink_port           = ocelot_get_devlink_port,
 };
 
 
        .ndo_get_stats          = get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_change_mtu         = natsemi_change_mtu,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_tx_timeout         = ns_tx_timeout,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_start_xmit         = s2io_xmit,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = s2io_ndo_set_multicast,
-       .ndo_do_ioctl           = s2io_ioctl,
+       .ndo_eth_ioctl          = s2io_ioctl,
        .ndo_set_mac_address    = s2io_set_mac_addr,
        .ndo_change_mtu         = s2io_change_mtu,
        .ndo_set_features       = s2io_set_features,
 
        .ndo_start_xmit         = vxge_xmit,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = vxge_set_multicast,
-       .ndo_do_ioctl           = vxge_ioctl,
+       .ndo_eth_ioctl           = vxge_ioctl,
        .ndo_set_mac_address    = vxge_set_mac_addr,
        .ndo_change_mtu         = vxge_change_mtu,
        .ndo_fix_features       = vxge_fix_features,
 
        .ndo_stop               = lpc_eth_close,
        .ndo_start_xmit         = lpc_eth_hard_start_xmit,
        .ndo_set_rx_mode        = lpc_eth_set_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_mac_address    = lpc_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
        .ndo_tx_timeout = pch_gbe_tx_timeout,
        .ndo_change_mtu = pch_gbe_change_mtu,
        .ndo_set_features = pch_gbe_set_features,
-       .ndo_do_ioctl = pch_gbe_ioctl,
+       .ndo_eth_ioctl = pch_gbe_ioctl,
        .ndo_set_rx_mode = pch_gbe_set_multi,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller = pch_gbe_netpoll,
 
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_tx_timeout         = hamachi_tx_timeout,
-       .ndo_do_ioctl           = hamachi_ioctl,
+       .ndo_eth_ioctl          = hamachi_ioctl,
        .ndo_siocdevprivate     = hamachi_siocdevprivate,
 };
 
 
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_tx_timeout         = yellowfin_tx_timeout,
 };
 
 
        return 0;
 }
 
-static int ionic_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
+static int ionic_eth_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
 {
        struct ionic_lif *lif = netdev_priv(netdev);
 
 static const struct net_device_ops ionic_netdev_ops = {
        .ndo_open               = ionic_open,
        .ndo_stop               = ionic_stop,
-       .ndo_do_ioctl           = ionic_do_ioctl,
+       .ndo_eth_ioctl          = ionic_eth_ioctl,
        .ndo_start_xmit         = ionic_start_xmit,
        .ndo_get_stats64        = ionic_get_stats64,
        .ndo_set_rx_mode        = ionic_ndo_set_rx_mode,
 
        .ndo_set_mac_address    = qede_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_change_mtu         = qede_change_mtu,
-       .ndo_do_ioctl           = qede_ioctl,
+       .ndo_eth_ioctl          = qede_ioctl,
        .ndo_tx_timeout         = qede_tx_timeout,
 #ifdef CONFIG_QED_SRIOV
        .ndo_set_vf_mac         = qede_set_vf_mac,
 
        .ndo_start_xmit         = emac_start_xmit,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_change_mtu         = emac_change_mtu,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_tx_timeout         = emac_tx_timeout,
        .ndo_get_stats64        = emac_get_stats64,
        .ndo_set_features       = emac_set_features,
 
        .ndo_set_rx_mode        = r6040_multicast_list,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
        .ndo_tx_timeout         = r6040_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = r6040_poll_controller,
 
        .ndo_set_mac_address    = cp_set_mac_address,
        .ndo_set_rx_mode        = cp_set_rx_mode,
        .ndo_get_stats          = cp_get_stats,
-       .ndo_do_ioctl           = cp_ioctl,
+       .ndo_eth_ioctl          = cp_ioctl,
        .ndo_start_xmit         = cp_start_xmit,
        .ndo_tx_timeout         = cp_tx_timeout,
        .ndo_set_features       = cp_set_features,
 
        .ndo_set_mac_address    = rtl8139_set_mac_address,
        .ndo_start_xmit         = rtl8139_start_xmit,
        .ndo_set_rx_mode        = rtl8139_set_rx_mode,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_tx_timeout         = rtl8139_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = rtl8139_poll_controller,
 
        .ndo_fix_features       = rtl8169_fix_features,
        .ndo_set_features       = rtl8169_set_features,
        .ndo_set_mac_address    = rtl_set_mac_address,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_rx_mode        = rtl_set_rx_mode,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = rtl8169_netpoll,
 
        .ndo_get_stats          = ravb_get_stats,
        .ndo_set_rx_mode        = ravb_set_rx_mode,
        .ndo_tx_timeout         = ravb_tx_timeout,
-       .ndo_do_ioctl           = ravb_do_ioctl,
+       .ndo_eth_ioctl          = ravb_do_ioctl,
        .ndo_change_mtu         = ravb_change_mtu,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 
        .ndo_get_stats          = sh_eth_get_stats,
        .ndo_set_rx_mode        = sh_eth_set_rx_mode,
        .ndo_tx_timeout         = sh_eth_tx_timeout,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_change_mtu         = sh_eth_change_mtu,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_vlan_rx_add_vid    = sh_eth_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = sh_eth_vlan_rx_kill_vid,
        .ndo_tx_timeout         = sh_eth_tx_timeout,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_change_mtu         = sh_eth_change_mtu,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 
        .ndo_set_features       = sxgbe_set_features,
        .ndo_set_rx_mode        = sxgbe_set_rx_mode,
        .ndo_tx_timeout         = sxgbe_tx_timeout,
-       .ndo_do_ioctl           = sxgbe_ioctl,
+       .ndo_eth_ioctl          = sxgbe_ioctl,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = sxgbe_poll_controller,
 #endif
 
        .ndo_tx_timeout         = efx_watchdog,
        .ndo_start_xmit         = efx_hard_start_xmit,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = efx_ioctl,
+       .ndo_eth_ioctl          = efx_ioctl,
        .ndo_change_mtu         = efx_change_mtu,
        .ndo_set_mac_address    = efx_set_mac_address,
        .ndo_set_rx_mode        = efx_set_rx_mode,
 
        .ndo_tx_timeout         = ef4_watchdog,
        .ndo_start_xmit         = ef4_hard_start_xmit,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = ef4_ioctl,
+       .ndo_eth_ioctl          = ef4_ioctl,
        .ndo_change_mtu         = ef4_change_mtu,
        .ndo_set_mac_address    = ef4_set_mac_address,
        .ndo_set_rx_mode        = ef4_set_rx_mode,
 
        .ndo_tx_timeout         = ioc3_timeout,
        .ndo_get_stats          = ioc3_get_stats,
        .ndo_set_rx_mode        = ioc3_set_multicast_list,
-       .ndo_do_ioctl           = ioc3_ioctl,
+       .ndo_eth_ioctl          = ioc3_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = ioc3_set_mac_address,
 };
 
        .ndo_open               = meth_open,
        .ndo_stop               = meth_release,
        .ndo_start_xmit         = meth_tx,
-       .ndo_do_ioctl           = meth_ioctl,
+       .ndo_eth_ioctl          = meth_ioctl,
        .ndo_tx_timeout         = meth_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 
 static const struct net_device_ops sis190_netdev_ops = {
        .ndo_open               = sis190_open,
        .ndo_stop               = sis190_close,
-       .ndo_do_ioctl           = sis190_ioctl,
+       .ndo_eth_ioctl          = sis190_ioctl,
        .ndo_start_xmit         = sis190_start_xmit,
        .ndo_tx_timeout         = sis190_tx_timeout,
        .ndo_set_rx_mode        = sis190_set_rx_mode,
 
        .ndo_set_rx_mode        = set_rx_mode,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
-       .ndo_do_ioctl           = mii_ioctl,
+       .ndo_eth_ioctl          = mii_ioctl,
        .ndo_tx_timeout         = sis900_tx_timeout,
 #ifdef CONFIG_NET_POLL_CONTROLLER
         .ndo_poll_controller   = sis900_poll,
 
        .ndo_tx_timeout         = epic_tx_timeout,
        .ndo_get_stats          = epic_get_stats,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_eth_ioctl          = netdev_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
        .ndo_tx_timeout         = smc_tx_timeout,
        .ndo_set_config         = s9k_config,
        .ndo_set_rx_mode        = set_rx_mode,
-       .ndo_do_ioctl           = smc_ioctl,
+       .ndo_eth_ioctl          = smc_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
        .ndo_start_xmit         = smsc911x_hard_start_xmit,
        .ndo_get_stats          = smsc911x_get_stats,
        .ndo_set_rx_mode        = smsc911x_set_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = smsc911x_set_mac_address,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = smsc9420_hard_start_xmit,
        .ndo_get_stats          = smsc9420_get_stats,
        .ndo_set_rx_mode        = smsc9420_set_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_set_features       = netsec_netdev_set_features,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl,
+       .ndo_eth_ioctl          = phy_do_ioctl,
        .ndo_xdp_xmit           = netsec_xdp_xmit,
        .ndo_bpf                = netsec_xdp,
 };
 
        .ndo_open               = ave_open,
        .ndo_stop               = ave_stop,
        .ndo_start_xmit         = ave_start_xmit,
-       .ndo_do_ioctl           = ave_ioctl,
+       .ndo_eth_ioctl          = ave_ioctl,
        .ndo_set_rx_mode        = ave_set_rx_mode,
        .ndo_get_stats64        = ave_get_stats64,
        .ndo_set_mac_address    = ave_set_mac_address,
 
        .ndo_set_features = stmmac_set_features,
        .ndo_set_rx_mode = stmmac_set_rx_mode,
        .ndo_tx_timeout = stmmac_tx_timeout,
-       .ndo_do_ioctl = stmmac_ioctl,
+       .ndo_eth_ioctl = stmmac_ioctl,
        .ndo_setup_tc = stmmac_setup_tc,
        .ndo_select_queue = stmmac_select_queue,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = cas_start_xmit,
        .ndo_get_stats          = cas_get_stats,
        .ndo_set_rx_mode        = cas_set_multicast,
-       .ndo_do_ioctl           = cas_ioctl,
+       .ndo_eth_ioctl          = cas_ioctl,
        .ndo_tx_timeout         = cas_tx_timeout,
        .ndo_change_mtu         = cas_change_mtu,
        .ndo_set_mac_address    = eth_mac_addr,
 
        .ndo_set_rx_mode        = niu_set_rx_mode,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = niu_set_mac_addr,
-       .ndo_do_ioctl           = niu_ioctl,
+       .ndo_eth_ioctl          = niu_ioctl,
        .ndo_tx_timeout         = niu_tx_timeout,
        .ndo_change_mtu         = niu_change_mtu,
 };
 
        .ndo_start_xmit         = gem_start_xmit,
        .ndo_get_stats          = gem_get_stats,
        .ndo_set_rx_mode        = gem_set_multicast,
-       .ndo_do_ioctl           = gem_ioctl,
+       .ndo_eth_ioctl          = gem_ioctl,
        .ndo_tx_timeout         = gem_tx_timeout,
        .ndo_change_mtu         = gem_change_mtu,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_change_mtu         = xlgmac_change_mtu,
        .ndo_set_mac_address    = xlgmac_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = xlgmac_ioctl,
+       .ndo_eth_ioctl          = xlgmac_ioctl,
        .ndo_vlan_rx_add_vid    = xlgmac_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = xlgmac_vlan_rx_kill_vid,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_tx_timeout         = am65_cpsw_nuss_ndo_host_tx_timeout,
        .ndo_vlan_rx_add_vid    = am65_cpsw_nuss_ndo_slave_add_vid,
        .ndo_vlan_rx_kill_vid   = am65_cpsw_nuss_ndo_slave_kill_vid,
-       .ndo_do_ioctl           = am65_cpsw_nuss_ndo_slave_ioctl,
+       .ndo_eth_ioctl          = am65_cpsw_nuss_ndo_slave_ioctl,
        .ndo_setup_tc           = am65_cpsw_qos_ndo_setup_tc,
        .ndo_get_devlink_port   = am65_cpsw_ndo_get_devlink_port,
 };
 
        .ndo_start_xmit         = cpmac_start_xmit,
        .ndo_tx_timeout         = cpmac_tx_timeout,
        .ndo_set_rx_mode        = cpmac_set_multicast_list,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 };
 
        .ndo_stop               = cpsw_ndo_stop,
        .ndo_start_xmit         = cpsw_ndo_start_xmit,
        .ndo_set_mac_address    = cpsw_ndo_set_mac_address,
-       .ndo_do_ioctl           = cpsw_ndo_ioctl,
+       .ndo_eth_ioctl          = cpsw_ndo_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_tx_timeout         = cpsw_ndo_tx_timeout,
        .ndo_set_rx_mode        = cpsw_ndo_set_rx_mode,
 
        .ndo_stop               = cpsw_ndo_stop,
        .ndo_start_xmit         = cpsw_ndo_start_xmit,
        .ndo_set_mac_address    = cpsw_ndo_set_mac_address,
-       .ndo_do_ioctl           = cpsw_ndo_ioctl,
+       .ndo_eth_ioctl          = cpsw_ndo_ioctl,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_tx_timeout         = cpsw_ndo_tx_timeout,
        .ndo_set_rx_mode        = cpsw_ndo_set_rx_mode,
 
        .ndo_start_xmit         = emac_dev_xmit,
        .ndo_set_rx_mode        = emac_dev_mcast_set,
        .ndo_set_mac_address    = emac_dev_setmac_addr,
-       .ndo_do_ioctl           = emac_devioctl,
+       .ndo_eth_ioctl          = emac_devioctl,
        .ndo_tx_timeout         = emac_dev_tx_timeout,
        .ndo_get_stats          = emac_dev_getnetstats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_stop               = netcp_ndo_stop,
        .ndo_start_xmit         = netcp_ndo_start_xmit,
        .ndo_set_rx_mode        = netcp_set_rx_mode,
-       .ndo_do_ioctl           = netcp_ndo_ioctl,
+       .ndo_eth_ioctl           = netcp_ndo_ioctl,
        .ndo_get_stats64        = netcp_get_stats,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_tx_timeout         = tlan_tx_timeout,
        .ndo_get_stats          = tlan_get_stats,
        .ndo_set_rx_mode        = tlan_set_multicast_list,
-       .ndo_do_ioctl           = tlan_ioctl,
+       .ndo_eth_ioctl          = tlan_ioctl,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = spider_net_xmit,
        .ndo_set_rx_mode        = spider_net_set_multi,
        .ndo_set_mac_address    = spider_net_set_mac,
-       .ndo_do_ioctl           = spider_net_do_ioctl,
+       .ndo_eth_ioctl          = spider_net_do_ioctl,
        .ndo_tx_timeout         = spider_net_tx_timeout,
        .ndo_validate_addr      = eth_validate_addr,
        /* HW VLAN */
 
        .ndo_get_stats          = tc35815_get_stats,
        .ndo_set_rx_mode        = tc35815_set_multicast_list,
        .ndo_tx_timeout         = tc35815_tx_timeout,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = eth_mac_addr,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_start_xmit         = tsi108_send_packet,
        .ndo_set_rx_mode        = tsi108_set_rx_mode,
        .ndo_get_stats          = tsi108_get_stats,
-       .ndo_do_ioctl           = tsi108_do_ioctl,
+       .ndo_eth_ioctl          = tsi108_do_ioctl,
        .ndo_set_mac_address    = tsi108_set_mac,
        .ndo_validate_addr      = eth_validate_addr,
 };
 
        .ndo_set_rx_mode         = rhine_set_rx_mode,
        .ndo_validate_addr       = eth_validate_addr,
        .ndo_set_mac_address     = eth_mac_addr,
-       .ndo_do_ioctl            = netdev_ioctl,
+       .ndo_eth_ioctl           = netdev_ioctl,
        .ndo_tx_timeout          = rhine_tx_timeout,
        .ndo_vlan_rx_add_vid     = rhine_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid    = rhine_vlan_rx_kill_vid,
 
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_set_rx_mode        = velocity_set_multi,
        .ndo_change_mtu         = velocity_change_mtu,
-       .ndo_do_ioctl           = velocity_ioctl,
+       .ndo_eth_ioctl          = velocity_ioctl,
        .ndo_vlan_rx_add_vid    = velocity_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = velocity_vlan_rx_kill_vid,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
        .ndo_set_rx_mode = temac_set_multicast_list,
        .ndo_set_mac_address = temac_set_mac_address,
        .ndo_validate_addr = eth_validate_addr,
-       .ndo_do_ioctl = phy_do_ioctl_running,
+       .ndo_eth_ioctl = phy_do_ioctl_running,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller = temac_poll_controller,
 #endif
 
        .ndo_change_mtu = axienet_change_mtu,
        .ndo_set_mac_address = netdev_set_mac_address,
        .ndo_validate_addr = eth_validate_addr,
-       .ndo_do_ioctl = axienet_ioctl,
+       .ndo_eth_ioctl = axienet_ioctl,
        .ndo_set_rx_mode = axienet_set_multicast_list,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller = axienet_poll_controller,
 
        .ndo_start_xmit         = xemaclite_send,
        .ndo_set_mac_address    = xemaclite_set_mac_address,
        .ndo_tx_timeout         = xemaclite_tx_timeout,
-       .ndo_do_ioctl           = xemaclite_ioctl,
+       .ndo_eth_ioctl          = xemaclite_ioctl,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller = xemaclite_poll_controller,
 #endif
 
        .ndo_start_xmit         = do_start_xmit,
        .ndo_tx_timeout         = xirc_tx_timeout,
        .ndo_set_config         = do_config,
-       .ndo_do_ioctl           = do_ioctl,
+       .ndo_eth_ioctl          = do_ioctl,
        .ndo_set_rx_mode        = set_multicast_list,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
 
        .ndo_stop = eth_close,
        .ndo_start_xmit = eth_xmit,
        .ndo_set_rx_mode = eth_set_mcast_list,
-       .ndo_do_ioctl = eth_ioctl,
+       .ndo_eth_ioctl = eth_ioctl,
        .ndo_set_mac_address = eth_mac_addr,
        .ndo_validate_addr = eth_validate_addr,
 };
 
        return 0;
 }
 
-static int macvlan_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+static int macvlan_eth_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
        struct net_device *real_dev = macvlan_dev_real_dev(dev);
        const struct net_device_ops *ops = real_dev->netdev_ops;
                        break;
                fallthrough;
        case SIOCGHWTSTAMP:
-               if (netif_device_present(real_dev) && ops->ndo_do_ioctl)
-                       err = ops->ndo_do_ioctl(real_dev, &ifrr, cmd);
+               if (netif_device_present(real_dev) && ops->ndo_eth_ioctl)
+                       err = ops->ndo_eth_ioctl(real_dev, &ifrr, cmd);
                break;
        }
 
        .ndo_stop               = macvlan_stop,
        .ndo_start_xmit         = macvlan_start_xmit,
        .ndo_change_mtu         = macvlan_change_mtu,
-       .ndo_do_ioctl           = macvlan_do_ioctl,
+       .ndo_eth_ioctl          = macvlan_eth_ioctl,
        .ndo_fix_features       = macvlan_fix_features,
        .ndo_change_rx_flags    = macvlan_change_rx_flags,
        .ndo_set_mac_address    = macvlan_set_mac_address,
 
 EXPORT_SYMBOL(phy_mii_ioctl);
 
 /**
- * phy_do_ioctl - generic ndo_do_ioctl implementation
+ * phy_do_ioctl - generic ndo_eth_ioctl implementation
  * @dev: the net_device struct
  * @ifr: &struct ifreq for socket ioctl's
  * @cmd: ioctl cmd to execute
 EXPORT_SYMBOL(phy_do_ioctl);
 
 /**
- * phy_do_ioctl_running - generic ndo_do_ioctl implementation but test first
+ * phy_do_ioctl_running - generic ndo_eth_ioctl implementation but test first
  *
  * @dev: the net_device struct
  * @ifr: &struct ifreq for socket ioctl's
 
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = asix_ioctl,
+       .ndo_eth_ioctl          = asix_ioctl,
        .ndo_set_rx_mode        = ax88172_set_multicast,
 };
 
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_set_mac_address    = asix_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_rx_mode        = asix_set_multicast,
 };
 
        .ndo_set_mac_address    = asix_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = asix_set_multicast,
-       .ndo_do_ioctl           = asix_ioctl,
+       .ndo_eth_ioctl          = asix_ioctl,
        .ndo_change_mtu         = ax88178_change_mtu,
 };
 
 
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_set_mac_address    = asix_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_rx_mode        = asix_set_multicast,
 };
 
 
        .ndo_change_mtu         = ax88179_change_mtu,
        .ndo_set_mac_address    = ax88179_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = ax88179_ioctl,
+       .ndo_eth_ioctl          = ax88179_ioctl,
        .ndo_set_rx_mode        = ax88179_set_multicast,
        .ndo_set_features       = ax88179_set_features,
 };
 
        .ndo_change_mtu         = usbnet_change_mtu,
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = dm9601_ioctl,
+       .ndo_eth_ioctl          = dm9601_ioctl,
        .ndo_set_rx_mode        = dm9601_set_multicast,
        .ndo_set_mac_address    = dm9601_set_mac_address,
 };
 
        .ndo_change_mtu         = lan78xx_change_mtu,
        .ndo_set_mac_address    = lan78xx_set_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = phy_do_ioctl_running,
+       .ndo_eth_ioctl          = phy_do_ioctl_running,
        .ndo_set_rx_mode        = lan78xx_set_multicast,
        .ndo_set_features       = lan78xx_set_features,
        .ndo_vlan_rx_add_vid    = lan78xx_vlan_rx_add_vid,
 
        .ndo_change_mtu         = usbnet_change_mtu,
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = mcs7830_ioctl,
+       .ndo_eth_ioctl          = mcs7830_ioctl,
        .ndo_set_rx_mode        = mcs7830_set_multicast,
        .ndo_set_mac_address    = mcs7830_set_mac_address,
 };
 
 static const struct net_device_ops rtl8152_netdev_ops = {
        .ndo_open               = rtl8152_open,
        .ndo_stop               = rtl8152_close,
-       .ndo_do_ioctl           = rtl8152_ioctl,
+       .ndo_eth_ioctl          = rtl8152_ioctl,
        .ndo_start_xmit         = rtl8152_start_xmit,
        .ndo_tx_timeout         = rtl8152_tx_timeout,
        .ndo_set_features       = rtl8152_set_features,
 
        .ndo_change_mtu         = smsc75xx_change_mtu,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = smsc75xx_ioctl,
+       .ndo_eth_ioctl          = smsc75xx_ioctl,
        .ndo_set_rx_mode        = smsc75xx_set_multicast,
        .ndo_set_features       = smsc75xx_set_features,
 };
 
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = smsc95xx_ioctl,
+       .ndo_eth_ioctl          = smsc95xx_ioctl,
        .ndo_set_rx_mode        = smsc95xx_set_multicast,
        .ndo_set_features       = smsc95xx_set_features,
 };
 
        .ndo_change_mtu         = usbnet_change_mtu,
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = sr9700_ioctl,
+       .ndo_eth_ioctl          = sr9700_ioctl,
        .ndo_set_rx_mode        = sr9700_set_multicast,
        .ndo_set_mac_address    = sr9700_set_mac_address,
 };
 
        .ndo_get_stats64        = dev_get_tstats64,
        .ndo_set_mac_address    = sr_set_mac_address,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_do_ioctl           = sr_ioctl,
+       .ndo_eth_ioctl          = sr_ioctl,
        .ndo_set_rx_mode        = sr_set_multicast,
 };
 
 
        .ndo_select_queue       = qeth_l2_select_queue,
        .ndo_validate_addr      = qeth_l2_validate_addr,
        .ndo_set_rx_mode        = qeth_l2_set_rx_mode,
-       .ndo_do_ioctl           = qeth_do_ioctl,
+       .ndo_eth_ioctl          = qeth_do_ioctl,
        .ndo_siocdevprivate     = qeth_siocdevprivate,
        .ndo_set_mac_address    = qeth_l2_set_mac_address,
        .ndo_vlan_rx_add_vid    = qeth_l2_vlan_rx_add_vid,
 
        .ndo_select_queue       = qeth_l3_iqd_select_queue,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = qeth_l3_set_rx_mode,
-       .ndo_do_ioctl           = qeth_do_ioctl,
+       .ndo_eth_ioctl          = qeth_do_ioctl,
        .ndo_siocdevprivate     = qeth_siocdevprivate,
        .ndo_fix_features       = qeth_fix_features,
        .ndo_set_features       = qeth_set_features,
        .ndo_select_queue       = qeth_l3_osa_select_queue,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_rx_mode        = qeth_l3_set_rx_mode,
-       .ndo_do_ioctl           = qeth_do_ioctl,
+       .ndo_eth_ioctl          = qeth_do_ioctl,
        .ndo_siocdevprivate     = qeth_siocdevprivate,
        .ndo_fix_features       = qeth_fix_features,
        .ndo_set_features       = qeth_set_features,
 
        .ndo_start_xmit         = cvm_oct_xmit,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_start_xmit         = cvm_oct_xmit,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_start_xmit         = cvm_oct_xmit,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_start_xmit         = cvm_oct_xmit,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_start_xmit         = cvm_oct_xmit,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_start_xmit         = cvm_oct_xmit_pow,
        .ndo_set_rx_mode        = cvm_oct_common_set_multicast_list,
        .ndo_set_mac_address    = cvm_oct_common_set_mac_address,
-       .ndo_do_ioctl           = cvm_oct_ioctl,
+       .ndo_eth_ioctl          = cvm_oct_ioctl,
        .ndo_change_mtu         = cvm_oct_common_change_mtu,
        .ndo_get_stats          = cvm_oct_common_get_stats,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 
  *     the generic interface code. If not defined ioctls return
  *     not supported error code.
  *
+ * * int (*ndo_eth_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd);
+ *     Called for ethernet specific ioctls: SIOCGMIIPHY, SIOCGMIIREG,
+ *     SIOCSMIIREG, SIOCSHWTSTAMP and SIOCGHWTSTAMP.
+ *
  * int (*ndo_set_config)(struct net_device *dev, struct ifmap *map);
  *     Used to set network devices bus interface parameters. This interface
  *     is retained for legacy reasons; new devices should use the bus
        int                     (*ndo_validate_addr)(struct net_device *dev);
        int                     (*ndo_do_ioctl)(struct net_device *dev,
                                                struct ifreq *ifr, int cmd);
+       int                     (*ndo_eth_ioctl)(struct net_device *dev,
+                                                struct ifreq *ifr, int cmd);
        int                     (*ndo_siocdevprivate)(struct net_device *dev,
                                                      struct ifreq *ifr,
                                                      void __user *data, int cmd);
 
  * function pointers.
  */
 struct dsa_netdevice_ops {
-       int (*ndo_do_ioctl)(struct net_device *dev, struct ifreq *ifr,
-                           int cmd);
+       int (*ndo_eth_ioctl)(struct net_device *dev, struct ifreq *ifr,
+                            int cmd);
 };
 
 #define DSA_TAG_DRIVER_ALIAS "dsa_tag-"
        return 0;
 }
 
-static inline int dsa_ndo_do_ioctl(struct net_device *dev, struct ifreq *ifr,
-                                  int cmd)
+static inline int dsa_ndo_eth_ioctl(struct net_device *dev, struct ifreq *ifr,
+                                   int cmd)
 {
        const struct dsa_netdevice_ops *ops;
        int err;
 
        ops = dev->dsa_ptr->netdev_ops;
 
-       return ops->ndo_do_ioctl(dev, ifr, cmd);
+       return ops->ndo_eth_ioctl(dev, ifr, cmd);
 }
 #else
-static inline int dsa_ndo_do_ioctl(struct net_device *dev, struct ifreq *ifr,
-                                  int cmd)
+static inline int dsa_ndo_eth_ioctl(struct net_device *dev, struct ifreq *ifr,
+                                   int cmd)
 {
        return -EOPNOTSUPP;
 }
 
        case SIOCGMIIREG:
        case SIOCSMIIREG:
        case SIOCGHWTSTAMP:
-               if (netif_device_present(real_dev) && ops->ndo_do_ioctl)
-                       err = ops->ndo_do_ioctl(real_dev, &ifrr, cmd);
+               if (netif_device_present(real_dev) && ops->ndo_eth_ioctl)
+                       err = ops->ndo_eth_ioctl(real_dev, &ifrr, cmd);
                break;
        }
 
        .ndo_set_mac_address    = vlan_dev_set_mac_address,
        .ndo_set_rx_mode        = vlan_dev_set_rx_mode,
        .ndo_change_rx_flags    = vlan_dev_change_rx_flags,
-       .ndo_do_ioctl           = vlan_dev_ioctl,
+       .ndo_eth_ioctl          = vlan_dev_ioctl,
        .ndo_neigh_setup        = vlan_dev_neigh_setup,
        .ndo_get_stats64        = vlan_dev_get_stats64,
 #if IS_ENABLED(CONFIG_FCOE)
 
        return 0;
 }
 
-static int dev_do_ioctl(struct net_device *dev,
-                       struct ifreq *ifr, unsigned int cmd)
+static int dev_eth_ioctl(struct net_device *dev,
+                        struct ifreq *ifr, unsigned int cmd)
 {
        const struct net_device_ops *ops = dev->netdev_ops;
        int err;
 
-       err = dsa_ndo_do_ioctl(dev, ifr, cmd);
+       err = dsa_ndo_eth_ioctl(dev, ifr, cmd);
        if (err == 0 || err != -EOPNOTSUPP)
                return err;
 
-       if (ops->ndo_do_ioctl) {
+       if (ops->ndo_eth_ioctl) {
                if (netif_device_present(dev))
-                       err = ops->ndo_do_ioctl(dev, ifr, cmd);
+                       err = ops->ndo_eth_ioctl(dev, ifr, cmd);
                else
                        err = -ENODEV;
        }
        return err;
 }
 
+static int dev_do_ioctl(struct net_device *dev,
+                       struct ifreq *ifr, unsigned int cmd)
+{
+       const struct net_device_ops *ops = dev->netdev_ops;
+
+       if (ops->ndo_do_ioctl) {
+               if (netif_device_present(dev))
+                       return ops->ndo_do_ioctl(dev, ifr, cmd);
+               else
+                       return -ENODEV;
+       }
+
+       return -EOPNOTSUPP;
+}
+
 static int dev_siocdevprivate(struct net_device *dev, struct ifreq *ifr,
                              void __user *data, unsigned int cmd)
 {
                    cmd <= SIOCDEVPRIVATE + 15)
                        return dev_siocdevprivate(dev, ifr, data, cmd);
 
-               if (cmd == SIOCBONDENSLAVE ||
+               if (cmd == SIOCGMIIPHY ||
+                   cmd == SIOCGMIIREG ||
+                   cmd == SIOCSMIIREG ||
+                   cmd == SIOCSHWTSTAMP ||
+                   cmd == SIOCGHWTSTAMP) {
+                       err = dev_eth_ioctl(dev, ifr, cmd);
+               } else if (cmd == SIOCBONDENSLAVE ||
                    cmd == SIOCBONDRELEASE ||
                    cmd == SIOCBONDSETHWADDR ||
                    cmd == SIOCBONDSLAVEINFOQUERY ||
                    cmd == SIOCBONDINFOQUERY ||
                    cmd == SIOCBONDCHANGEACTIVE ||
-                   cmd == SIOCGMIIPHY ||
-                   cmd == SIOCGMIIREG ||
-                   cmd == SIOCSMIIREG ||
                    cmd == SIOCBRADDIF ||
                    cmd == SIOCBRDELIF ||
-                   cmd == SIOCSHWTSTAMP ||
-                   cmd == SIOCGHWTSTAMP ||
                    cmd == SIOCWANDEV) {
                        err = dev_do_ioctl(dev, ifr, cmd);
                } else
 
                break;
        }
 
-       if (dev->netdev_ops->ndo_do_ioctl)
-               err = dev->netdev_ops->ndo_do_ioctl(dev, ifr, cmd);
+       if (dev->netdev_ops->ndo_eth_ioctl)
+               err = dev->netdev_ops->ndo_eth_ioctl(dev, ifr, cmd);
 
        return err;
 }
 
 static const struct dsa_netdevice_ops dsa_netdev_ops = {
-       .ndo_do_ioctl = dsa_master_ioctl,
+       .ndo_eth_ioctl = dsa_master_ioctl,
 };
 
 static int dsa_master_ethtool_setup(struct net_device *dev)
 
        .ndo_set_rx_mode        = dsa_slave_set_rx_mode,
        .ndo_set_mac_address    = dsa_slave_set_mac_address,
        .ndo_fdb_dump           = dsa_slave_fdb_dump,
-       .ndo_do_ioctl           = dsa_slave_ioctl,
+       .ndo_eth_ioctl          = dsa_slave_ioctl,
        .ndo_get_iflink         = dsa_slave_get_iflink,
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_netpoll_setup      = dsa_slave_netpoll_setup,