Commit c3ecb9f3 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller

sfc: convert to net_device_ops

Convert driver to new net_device_ops. Compile tested only.
Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Acked-by: default avatarBen Hutchings <bhutchings@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1abd266f
...@@ -1433,12 +1433,28 @@ static void efx_set_multicast_list(struct net_device *net_dev) ...@@ -1433,12 +1433,28 @@ static void efx_set_multicast_list(struct net_device *net_dev)
falcon_set_multicast_hash(efx); falcon_set_multicast_hash(efx);
} }
static const struct net_device_ops efx_netdev_ops = {
.ndo_open = efx_net_open,
.ndo_stop = efx_net_stop,
.ndo_get_stats = efx_net_stats,
.ndo_tx_timeout = efx_watchdog,
.ndo_start_xmit = efx_hard_start_xmit,
.ndo_validate_addr = eth_validate_addr,
.ndo_do_ioctl = efx_ioctl,
.ndo_change_mtu = efx_change_mtu,
.ndo_set_mac_address = efx_set_mac_address,
.ndo_set_multicast_list = efx_set_multicast_list,
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = efx_netpoll,
#endif
};
static int efx_netdev_event(struct notifier_block *this, static int efx_netdev_event(struct notifier_block *this,
unsigned long event, void *ptr) unsigned long event, void *ptr)
{ {
struct net_device *net_dev = ptr; struct net_device *net_dev = ptr;
if (net_dev->open == efx_net_open && event == NETDEV_CHANGENAME) { if (net_dev->netdev_ops == &efx_netdev_ops && event == NETDEV_CHANGENAME) {
struct efx_nic *efx = netdev_priv(net_dev); struct efx_nic *efx = netdev_priv(net_dev);
strcpy(efx->name, net_dev->name); strcpy(efx->name, net_dev->name);
...@@ -1459,18 +1475,7 @@ static int efx_register_netdev(struct efx_nic *efx) ...@@ -1459,18 +1475,7 @@ static int efx_register_netdev(struct efx_nic *efx)
net_dev->watchdog_timeo = 5 * HZ; net_dev->watchdog_timeo = 5 * HZ;
net_dev->irq = efx->pci_dev->irq; net_dev->irq = efx->pci_dev->irq;
net_dev->open = efx_net_open; net_dev->netdev_ops = &efx_netdev_ops;
net_dev->stop = efx_net_stop;
net_dev->get_stats = efx_net_stats;
net_dev->tx_timeout = &efx_watchdog;
net_dev->hard_start_xmit = efx_hard_start_xmit;
net_dev->do_ioctl = efx_ioctl;
net_dev->change_mtu = efx_change_mtu;
net_dev->set_mac_address = efx_set_mac_address;
net_dev->set_multicast_list = efx_set_multicast_list;
#ifdef CONFIG_NET_POLL_CONTROLLER
net_dev->poll_controller = efx_netpoll;
#endif
SET_NETDEV_DEV(net_dev, &efx->pci_dev->dev); SET_NETDEV_DEV(net_dev, &efx->pci_dev->dev);
SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops); SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment