retval = rndis_command(dev, u.header, CONTROL_BUFFER_SIZE);
if (unlikely(retval < 0)) {
---- a/drivers/net/usb/usbnet.c 2009-08-04 10:28:16.310023000 -0700
-+++ b/drivers/net/usb/usbnet.c 2009-08-04 10:28:16.410010646 -0700
-@@ -1155,6 +1155,7 @@
+--- a/drivers/net/usb/usbnet.c 2009-08-18 16:13:32.161376062 -0700
++++ b/drivers/net/usb/usbnet.c 2009-08-18 16:13:32.761354961 -0700
+@@ -1196,6 +1196,7 @@
}
EXPORT_SYMBOL_GPL(usbnet_disconnect);
static const struct net_device_ops usbnet_netdev_ops = {
.ndo_open = usbnet_open,
.ndo_stop = usbnet_stop,
-@@ -1164,6 +1165,7 @@
+@@ -1205,6 +1206,7 @@
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
/*-------------------------------------------------------------------------*/
-@@ -1233,7 +1235,15 @@
+@@ -1275,7 +1277,15 @@
net->features |= NETIF_F_HIGHDMA;
#endif
net->watchdog_timeo = TX_TIMEOUT_JIFFIES;
net->ethtool_ops = &usbnet_ethtool_ops;
---- a/drivers/net/wireless/rndis_wlan.c 2009-08-10 16:57:41.535486388 -0700
-+++ b/drivers/net/wireless/rndis_wlan.c 2009-08-10 16:57:41.903464012 -0700
-@@ -2789,6 +2789,7 @@
+--- a/drivers/net/wireless/rndis_wlan.c 2009-08-18 16:15:04.501372272 -0700
++++ b/drivers/net/wireless/rndis_wlan.c 2009-08-18 16:15:04.621354357 -0700
+@@ -2800,6 +2800,7 @@ static int bcm4320b_early_init(struct us
return 0;
}
/* same as rndis_netdev_ops but with local multicast handler */
static const struct net_device_ops rndis_wlan_netdev_ops = {
.ndo_open = usbnet_open,
-@@ -2799,6 +2800,7 @@
+@@ -2810,6 +2811,7 @@ static const struct net_device_ops rndis
.ndo_validate_addr = eth_validate_addr,
.ndo_set_multicast_list = rndis_wlan_set_multicast_list,
};
static int rndis_wlan_bind(struct usbnet *usbdev, struct usb_interface *intf)
-@@ -2849,7 +2851,11 @@
+@@ -2860,7 +2862,11 @@ static int rndis_wlan_bind(struct usbnet
* rndis_host wants to avoid all OID as much as possible
* so do promisc/multicast handling in rndis_wlan.
*/
tmp = RNDIS_PACKET_TYPE_DIRECTED | RNDIS_PACKET_TYPE_BROADCAST;
retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
---- a/net/mac80211/iface.c 2009-08-04 10:36:02.971020795 -0700
-+++ b/net/mac80211/iface.c 2009-08-04 10:36:03.459024595 -0700
-@@ -684,6 +684,7 @@
+--- a/net/mac80211/iface.c 2009-08-18 16:16:16.321354483 -0700
++++ b/net/mac80211/iface.c 2009-08-18 16:16:17.205374108 -0700
+@@ -675,6 +675,7 @@ static void ieee80211_teardown_sdata(str
WARN_ON(flushed);
}
static const struct net_device_ops ieee80211_dataif_ops = {
.ndo_open = ieee80211_open,
.ndo_stop = ieee80211_stop,
-@@ -703,11 +704,22 @@
+@@ -694,11 +695,22 @@ static const struct net_device_ops ieee8
.ndo_change_mtu = ieee80211_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
};
dev->destructor = free_netdev;
}
-@@ -722,7 +734,11 @@
+@@ -713,7 +725,11 @@ static void ieee80211_setup_sdata(struct
/* and set some type-dependent values */
sdata->vif.type = type;
sdata->wdev.iftype = type;
/* only monitor differs */
-@@ -745,7 +761,11 @@
+@@ -736,7 +752,11 @@ static void ieee80211_setup_sdata(struct
break;
case NL80211_IFTYPE_MONITOR:
sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
MONITOR_FLAG_OTHER_BSS;
break;
-@@ -812,6 +832,8 @@
+@@ -803,6 +823,8 @@ int ieee80211_if_add(struct ieee80211_lo
return -ENOMEM;
dev_net_set(ndev, wiphy_net(local->hw.wiphy));
ndev->needed_headroom = local->tx_headroom +
4*6 /* four MAC addresses */
+ 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
-@@ -820,6 +842,7 @@
+@@ -811,6 +833,7 @@ int ieee80211_if_add(struct ieee80211_lo
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
ret = dev_alloc_name(ndev, ndev->name);
if (ret < 0)
-@@ -852,6 +875,10 @@
+@@ -843,6 +866,10 @@ int ieee80211_if_add(struct ieee80211_lo
if (ret)
goto fail;
priv->wireless_data.spy_data = &priv->ieee->spy_data;
net_dev->wireless_data = &priv->wireless_data;
net_dev->wireless_handlers = &ipw_wx_handler_def;
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1148,6 +1148,7 @@ static void lbs_free_adapter(struct lbs_private *priv)
+--- a/drivers/net/wireless/libertas/main.c 2009-08-18 16:17:34.669375612 -0700
++++ b/drivers/net/wireless/libertas/main.c 2009-08-18 16:17:35.277375431 -0700
+@@ -1148,6 +1148,7 @@
lbs_deb_leave(LBS_DEB_MAIN);
}
static const struct net_device_ops lbs_netdev_ops = {
.ndo_open = lbs_dev_open,
.ndo_stop = lbs_eth_stop,
-@@ -1158,6 +1159,7 @@ static const struct net_device_ops lbs_netdev_ops = {
+@@ -1158,6 +1159,7 @@
.ndo_change_mtu = eth_change_mtu,
.ndo_validate_addr = eth_validate_addr,
};
/**
* @brief This function adds the card. it will probe the
-@@ -1193,7 +1195,16 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
+@@ -1193,7 +1195,16 @@
priv->infra_open = 0;
/* Setup the OS Interface to our functions */
dev->watchdog_timeo = 5 * HZ;
dev->ethtool_ops = &lbs_ethtool_ops;
#ifdef WIRELESS_EXT
-@@ -1419,6 +1430,7 @@ out:
+@@ -1420,6 +1431,7 @@
EXPORT_SYMBOL_GPL(lbs_stop_card);
static const struct net_device_ops mesh_netdev_ops = {
.ndo_open = lbs_dev_open,
.ndo_stop = lbs_mesh_stop,
-@@ -1426,6 +1438,7 @@ static const struct net_device_ops mesh_netdev_ops = {
+@@ -1427,6 +1439,7 @@
.ndo_set_mac_address = lbs_set_mac_address,
.ndo_set_multicast_list = lbs_set_multicast_list,
};
/**
* @brief This function adds mshX interface
-@@ -1449,7 +1462,15 @@ static int lbs_add_mesh(struct lbs_private *priv)
+@@ -1450,7 +1463,15 @@
mesh_dev->ml_priv = priv;
priv->mesh_dev = mesh_dev;
mesh_dev->ethtool_ops = &lbs_ethtool_ops;
memcpy(mesh_dev->dev_addr, priv->dev->dev_addr,
sizeof(priv->dev->dev_addr));
-@@ -1664,11 +1685,13 @@ out:
+@@ -1665,11 +1686,13 @@
lbs_deb_leave(LBS_DEB_MAIN);
}
static int lbs_add_rtap(struct lbs_private *priv)
{
-@@ -1689,7 +1712,13 @@ static int lbs_add_rtap(struct lbs_private *priv)
+@@ -1690,7 +1713,13 @@
memcpy(rtap_dev->dev_addr, priv->current_addr, ETH_ALEN);
rtap_dev->type = ARPHRD_IEEE80211_RADIOTAP;
#define LBS_DEB_ENTER 0x00000001
#define LBS_DEB_LEAVE 0x00000002
---- a/drivers/net/wireless/mac80211_hwsim.c
-+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -814,16 +814,22 @@ static struct device_driver mac80211_hwsim_driver = {
+--- a/drivers/net/wireless/mac80211_hwsim.c 2009-08-18 16:18:52.829350750 -0700
++++ b/drivers/net/wireless/mac80211_hwsim.c 2009-08-18 16:18:52.977352457 -0700
+@@ -812,16 +812,22 @@
.name = "mac80211_hwsim"
};