summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-03-25 00:03:16 -0700
committerDavid S. Miller <davem@davemloft.net>2009-03-25 00:03:16 -0700
commit23d12e2bdd4f73d90c8c29674c531aa45eecf27f (patch)
treec1c0a98df0b4cb8622eb7a3f247477d65275f81b /drivers/net
parent67fca028f1535e510689d2e444b0289e264e05c1 (diff)
downloadlinux-23d12e2bdd4f73d90c8c29674c531aa45eecf27f.tar.bz2
rndis_wlan: Fix build with netdev_ops compat disabled.
Instead of storing a private ->set_multicast_list, just have a private netdev ops. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/rndis_wlan.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 82af21eeb592..db91db776508 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2524,6 +2524,17 @@ static int bcm4320_early_init(struct usbnet *usbdev)
return 0;
}
+/* same as rndis_netdev_ops but with local multicast handler */
+static const struct net_device_ops rndis_wext_netdev_ops = {
+ .ndo_open = usbnet_open,
+ .ndo_stop = usbnet_stop,
+ .ndo_start_xmit = usbnet_start_xmit,
+ .ndo_tx_timeout = usbnet_tx_timeout,
+ .ndo_set_mac_address = eth_mac_addr,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_set_multicast_list = rndis_wext_set_multicast_list,
+};
+
static int rndis_wext_bind(struct usbnet *usbdev, struct usb_interface *intf)
{
@@ -2559,7 +2570,8 @@ static int rndis_wext_bind(struct usbnet *usbdev, struct usb_interface *intf)
* rndis_host wants to avoid all OID as much as possible
* so do promisc/multicast handling in rndis_wext.
*/
- usbdev->net->set_multicast_list = rndis_wext_set_multicast_list;
+ usbdev->net->netdev_ops = &rndis_wext_netdev_ops;
+
tmp = RNDIS_PACKET_TYPE_DIRECTED | RNDIS_PACKET_TYPE_BROADCAST;
retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
sizeof(tmp));