Commit 240c102d authored by Ben Hutchings's avatar Ben Hutchings Committed by David S. Miller

netdev: restore MAC address set and validate operations

alloc_etherdev() used to install default implementations of these
operations, but they must now be explicitly installed in struct
net_device_ops.
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f2ba025b
...@@ -1142,7 +1142,8 @@ static const struct net_device_ops ixp4xx_netdev_ops = { ...@@ -1142,7 +1142,8 @@ static const struct net_device_ops ixp4xx_netdev_ops = {
.ndo_start_xmit = eth_xmit, .ndo_start_xmit = eth_xmit,
.ndo_set_multicast_list = eth_set_mcast_list, .ndo_set_multicast_list = eth_set_mcast_list,
.ndo_do_ioctl = eth_ioctl, .ndo_do_ioctl = eth_ioctl,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
}; };
static int __devinit eth_init_one(struct platform_device *pdev) static int __devinit eth_init_one(struct platform_device *pdev)
......
...@@ -3081,6 +3081,7 @@ static const struct net_device_ops ehea_netdev_ops = { ...@@ -3081,6 +3081,7 @@ static const struct net_device_ops ehea_netdev_ops = {
#endif #endif
.ndo_get_stats = ehea_get_stats, .ndo_get_stats = ehea_get_stats,
.ndo_set_mac_address = ehea_set_mac_addr, .ndo_set_mac_address = ehea_set_mac_addr,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_multicast_list = ehea_set_multicast_list, .ndo_set_multicast_list = ehea_set_multicast_list,
.ndo_change_mtu = ehea_change_mtu, .ndo_change_mtu = ehea_change_mtu,
.ndo_vlan_rx_register = ehea_vlan_rx_register, .ndo_vlan_rx_register = ehea_vlan_rx_register,
......
...@@ -156,6 +156,8 @@ static const struct net_device_ops gfar_netdev_ops = { ...@@ -156,6 +156,8 @@ static const struct net_device_ops gfar_netdev_ops = {
.ndo_tx_timeout = gfar_timeout, .ndo_tx_timeout = gfar_timeout,
.ndo_do_ioctl = gfar_ioctl, .ndo_do_ioctl = gfar_ioctl,
.ndo_vlan_rx_register = gfar_vlan_rx_register, .ndo_vlan_rx_register = gfar_vlan_rx_register,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = gfar_netpoll, .ndo_poll_controller = gfar_netpoll,
#endif #endif
......
...@@ -270,6 +270,8 @@ static const struct net_device_ops plip_netdev_ops = { ...@@ -270,6 +270,8 @@ static const struct net_device_ops plip_netdev_ops = {
.ndo_stop = plip_close, .ndo_stop = plip_close,
.ndo_start_xmit = plip_tx_packet, .ndo_start_xmit = plip_tx_packet,
.ndo_do_ioctl = plip_ioctl, .ndo_do_ioctl = plip_ioctl,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
}; };
/* Entry point of PLIP driver. /* Entry point of PLIP driver.
......
...@@ -1411,6 +1411,7 @@ static const struct net_device_ops gelic_netdevice_ops = { ...@@ -1411,6 +1411,7 @@ static const struct net_device_ops gelic_netdevice_ops = {
.ndo_set_multicast_list = gelic_net_set_multi, .ndo_set_multicast_list = gelic_net_set_multi,
.ndo_change_mtu = gelic_net_change_mtu, .ndo_change_mtu = gelic_net_change_mtu,
.ndo_tx_timeout = gelic_net_tx_timeout, .ndo_tx_timeout = gelic_net_tx_timeout,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr, .ndo_validate_addr = eth_validate_addr,
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = gelic_net_poll_controller, .ndo_poll_controller = gelic_net_poll_controller,
......
...@@ -2707,6 +2707,7 @@ static const struct net_device_ops gelic_wl_netdevice_ops = { ...@@ -2707,6 +2707,7 @@ static const struct net_device_ops gelic_wl_netdevice_ops = {
.ndo_set_multicast_list = gelic_net_set_multi, .ndo_set_multicast_list = gelic_net_set_multi,
.ndo_change_mtu = gelic_net_change_mtu, .ndo_change_mtu = gelic_net_change_mtu,
.ndo_tx_timeout = gelic_net_tx_timeout, .ndo_tx_timeout = gelic_net_tx_timeout,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr, .ndo_validate_addr = eth_validate_addr,
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = gelic_net_poll_controller, .ndo_poll_controller = gelic_net_poll_controller,
......
...@@ -1017,6 +1017,7 @@ static const struct net_device_ops vnet_ops = { ...@@ -1017,6 +1017,7 @@ static const struct net_device_ops vnet_ops = {
.ndo_stop = vnet_close, .ndo_stop = vnet_close,
.ndo_set_multicast_list = vnet_set_rx_mode, .ndo_set_multicast_list = vnet_set_rx_mode,
.ndo_set_mac_address = vnet_set_mac_addr, .ndo_set_mac_address = vnet_set_mac_addr,
.ndo_validate_addr = eth_validate_addr,
.ndo_tx_timeout = vnet_tx_timeout, .ndo_tx_timeout = vnet_tx_timeout,
.ndo_change_mtu = vnet_change_mtu, .ndo_change_mtu = vnet_change_mtu,
.ndo_start_xmit = vnet_start_xmit, .ndo_start_xmit = vnet_start_xmit,
......
...@@ -999,6 +999,8 @@ static const struct net_device_ops kaweth_netdev_ops = { ...@@ -999,6 +999,8 @@ static const struct net_device_ops kaweth_netdev_ops = {
.ndo_tx_timeout = kaweth_tx_timeout, .ndo_tx_timeout = kaweth_tx_timeout,
.ndo_set_multicast_list = kaweth_set_rx_mode, .ndo_set_multicast_list = kaweth_set_rx_mode,
.ndo_get_stats = kaweth_netdev_stats, .ndo_get_stats = kaweth_netdev_stats,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
}; };
static int kaweth_probe( static int kaweth_probe(
......
...@@ -1493,6 +1493,8 @@ static const struct net_device_ops pegasus_netdev_ops = { ...@@ -1493,6 +1493,8 @@ static const struct net_device_ops pegasus_netdev_ops = {
.ndo_set_multicast_list = pegasus_set_multicast, .ndo_set_multicast_list = pegasus_set_multicast,
.ndo_get_stats = pegasus_netdev_stats, .ndo_get_stats = pegasus_netdev_stats,
.ndo_tx_timeout = pegasus_tx_timeout, .ndo_tx_timeout = pegasus_tx_timeout,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
}; };
static struct usb_driver pegasus_driver = { static struct usb_driver pegasus_driver = {
......
...@@ -2521,6 +2521,8 @@ static const struct net_device_ops orinoco_netdev_ops = { ...@@ -2521,6 +2521,8 @@ static const struct net_device_ops orinoco_netdev_ops = {
.ndo_start_xmit = orinoco_xmit, .ndo_start_xmit = orinoco_xmit,
.ndo_set_multicast_list = orinoco_set_multicast_list, .ndo_set_multicast_list = orinoco_set_multicast_list,
.ndo_change_mtu = orinoco_change_mtu, .ndo_change_mtu = orinoco_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
.ndo_tx_timeout = orinoco_tx_timeout, .ndo_tx_timeout = orinoco_tx_timeout,
.ndo_get_stats = orinoco_get_stats, .ndo_get_stats = orinoco_get_stats,
}; };
...@@ -2555,7 +2557,6 @@ struct net_device ...@@ -2555,7 +2557,6 @@ struct net_device
priv->wireless_data.spy_data = &priv->spy_data; priv->wireless_data.spy_data = &priv->spy_data;
dev->wireless_data = &priv->wireless_data; dev->wireless_data = &priv->wireless_data;
#endif #endif
/* we use the default eth_mac_addr for setting the MAC addr */
/* Reserve space in skb for the SNAP header */ /* Reserve space in skb for the SNAP header */
dev->hard_header_len += ENCAPS_OVERHEAD; dev->hard_header_len += ENCAPS_OVERHEAD;
......
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