|
@@ -4580,39 +4580,6 @@ unsigned long netdev_fix_features(unsigned long features, const char *name)
|
|
|
}
|
|
|
EXPORT_SYMBOL(netdev_fix_features);
|
|
|
|
|
|
-/* Some devices need to (re-)set their netdev_ops inside
|
|
|
- * ->init() or similar. If that happens, we have to setup
|
|
|
- * the compat pointers again.
|
|
|
- */
|
|
|
-void netdev_resync_ops(struct net_device *dev)
|
|
|
-{
|
|
|
-#ifdef CONFIG_COMPAT_NET_DEV_OPS
|
|
|
- const struct net_device_ops *ops = dev->netdev_ops;
|
|
|
-
|
|
|
- dev->init = ops->ndo_init;
|
|
|
- dev->uninit = ops->ndo_uninit;
|
|
|
- dev->open = ops->ndo_open;
|
|
|
- dev->change_rx_flags = ops->ndo_change_rx_flags;
|
|
|
- dev->set_rx_mode = ops->ndo_set_rx_mode;
|
|
|
- dev->set_multicast_list = ops->ndo_set_multicast_list;
|
|
|
- dev->set_mac_address = ops->ndo_set_mac_address;
|
|
|
- dev->validate_addr = ops->ndo_validate_addr;
|
|
|
- dev->do_ioctl = ops->ndo_do_ioctl;
|
|
|
- dev->set_config = ops->ndo_set_config;
|
|
|
- dev->change_mtu = ops->ndo_change_mtu;
|
|
|
- dev->neigh_setup = ops->ndo_neigh_setup;
|
|
|
- dev->tx_timeout = ops->ndo_tx_timeout;
|
|
|
- dev->get_stats = ops->ndo_get_stats;
|
|
|
- dev->vlan_rx_register = ops->ndo_vlan_rx_register;
|
|
|
- dev->vlan_rx_add_vid = ops->ndo_vlan_rx_add_vid;
|
|
|
- dev->vlan_rx_kill_vid = ops->ndo_vlan_rx_kill_vid;
|
|
|
-#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
- dev->poll_controller = ops->ndo_poll_controller;
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(netdev_resync_ops);
|
|
|
-
|
|
|
/**
|
|
|
* register_netdevice - register a network device
|
|
|
* @dev: device to register
|
|
@@ -4652,23 +4619,6 @@ int register_netdevice(struct net_device *dev)
|
|
|
|
|
|
dev->iflink = -1;
|
|
|
|
|
|
-#ifdef CONFIG_COMPAT_NET_DEV_OPS
|
|
|
- /* Netdevice_ops API compatibility support.
|
|
|
- * This is temporary until all network devices are converted.
|
|
|
- */
|
|
|
- if (dev->netdev_ops) {
|
|
|
- netdev_resync_ops(dev);
|
|
|
- } else {
|
|
|
- char drivername[64];
|
|
|
- pr_info("%s (%s): not using net_device_ops yet\n",
|
|
|
- dev->name, netdev_drivername(dev, drivername, 64));
|
|
|
-
|
|
|
- /* This works only because net_device_ops and the
|
|
|
- compatibility structure are the same. */
|
|
|
- dev->netdev_ops = (void *) &(dev->init);
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
/* Init, if this function is available */
|
|
|
if (dev->netdev_ops->ndo_init) {
|
|
|
ret = dev->netdev_ops->ndo_init(dev);
|