net->watchdog_timeo = TX_TIMEOUT_JIFFIES;
net->ethtool_ops = &usbnet_ethtool_ops;
---- 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
+--- a/drivers/net/wireless/rndis_wlan.c 2009-09-02 14:08:52.418110490 -0700
++++ b/drivers/net/wireless/rndis_wlan.c 2009-09-02 14:08:52.930092180 -0700
+@@ -2667,6 +2667,7 @@
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,
-@@ -2810,6 +2811,7 @@ static const struct net_device_ops rndis
+@@ -2677,6 +2678,7 @@
.ndo_validate_addr = eth_validate_addr,
.ndo_set_multicast_list = rndis_wlan_set_multicast_list,
};
+#endif
-
static int rndis_wlan_bind(struct usbnet *usbdev, struct usb_interface *intf)
-@@ -2860,7 +2862,11 @@ static int rndis_wlan_bind(struct usbnet
+ {
+@@ -2724,7 +2726,11 @@
* 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-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
+--- a/net/mac80211/iface.c 2009-09-02 14:09:58.557123328 -0700
++++ b/net/mac80211/iface.c 2009-09-02 14:10:02.137093336 -0700
+@@ -642,6 +642,7 @@
WARN_ON(flushed);
}
static const struct net_device_ops ieee80211_dataif_ops = {
.ndo_open = ieee80211_open,
.ndo_stop = ieee80211_stop,
-@@ -694,11 +695,22 @@ static const struct net_device_ops ieee8
+@@ -661,11 +662,22 @@
.ndo_change_mtu = ieee80211_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
};
dev->destructor = free_netdev;
}
-@@ -713,7 +725,11 @@ static void ieee80211_setup_sdata(struct
+@@ -680,7 +692,11 @@
/* and set some type-dependent values */
sdata->vif.type = type;
sdata->wdev.iftype = type;
/* only monitor differs */
-@@ -736,7 +752,11 @@ static void ieee80211_setup_sdata(struct
+@@ -703,7 +719,11 @@
break;
case NL80211_IFTYPE_MONITOR:
sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
MONITOR_FLAG_OTHER_BSS;
break;
-@@ -803,6 +823,8 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -770,6 +790,8 @@
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 */
-@@ -811,6 +833,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -778,6 +800,7 @@
- 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)
-@@ -843,6 +866,10 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -810,6 +833,10 @@
if (ret)
goto fail;
if (ieee80211_vif_is_mesh(&sdata->vif) &&
params && params->mesh_id_len)
ieee80211_sdata_set_mesh_id(sdata,
---- a/drivers/net/b44.c
-+++ b/drivers/net/b44.c
-@@ -2112,6 +2112,7 @@ static int __devinit b44_get_invariants(struct b44 *bp)
+--- a/drivers/net/b44.c 2009-09-02 14:11:16.241100413 -0700
++++ b/drivers/net/b44.c 2009-09-02 14:11:16.485096724 -0700
+@@ -2113,6 +2113,7 @@
return err;
}
static const struct net_device_ops b44_netdev_ops = {
.ndo_open = b44_open,
.ndo_stop = b44_close,
-@@ -2127,6 +2128,7 @@ static const struct net_device_ops b44_netdev_ops = {
+@@ -2128,6 +2129,7 @@
.ndo_poll_controller = b44_poll_controller,
#endif
};
static int __devinit b44_init_one(struct ssb_device *sdev,
const struct ssb_device_id *ent)
-@@ -2166,9 +2168,26 @@ static int __devinit b44_init_one(struct ssb_device *sdev,
+@@ -2167,9 +2169,26 @@
bp->rx_pending = B44_DEF_RX_RING_PENDING;
bp->tx_pending = B44_DEF_TX_RING_PENDING;
}
EXPORT_SYMBOL(wireless_send_event);
---- a/drivers/net/wireless/ipw2x00/ipw2100.c
-+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -6008,6 +6008,7 @@ static void ipw2100_rf_kill(struct work_struct *work)
+--- a/drivers/net/wireless/ipw2x00/ipw2100.c 2009-09-02 14:12:00.958117808 -0700
++++ b/drivers/net/wireless/ipw2x00/ipw2100.c 2009-09-02 14:12:01.382115761 -0700
+@@ -6008,6 +6008,7 @@
static void ipw2100_irq_tasklet(struct ipw2100_priv *priv);
static const struct net_device_ops ipw2100_netdev_ops = {
.ndo_open = ipw2100_open,
.ndo_stop = ipw2100_close,
-@@ -6018,6 +6019,7 @@ static const struct net_device_ops ipw2100_netdev_ops = {
+@@ -6018,6 +6019,7 @@
.ndo_set_mac_address = ipw2100_set_address,
.ndo_validate_addr = eth_validate_addr,
};
/* Look into using netdev destructor to shutdown ieee80211? */
-@@ -6043,7 +6045,16 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
+@@ -6043,7 +6045,16 @@
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;
+
dev->ethtool_ops = &ipw2100_ethtool_ops;
dev->wireless_handlers = &ipw2100_wx_handler_def;
- priv->wireless_data.ieee80211 = priv->ieee;
---- a/drivers/net/wireless/ipw2x00/ipw2200.c 2009-08-20 13:47:07.311291621 -0700
-+++ b/drivers/net/wireless/ipw2x00/ipw2200.c 2009-08-20 13:47:07.783268230 -0700
-@@ -11524,6 +11524,7 @@
- return NETDEV_TX_OK;
- }
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- static const struct net_device_ops ipw_prom_netdev_ops = {
- .ndo_open = ipw_prom_open,
- .ndo_stop = ipw_prom_stop,
-@@ -11532,6 +11533,7 @@
- .ndo_set_mac_address = eth_mac_addr,
- .ndo_validate_addr = eth_validate_addr,
- };
-+#endif
-
- static int ipw_prom_alloc(struct ipw_priv *priv)
- {
-@@ -11552,7 +11554,13 @@
- memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN);
-
- priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP;
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- priv->prom_net_dev->netdev_ops = &ipw_prom_netdev_ops;
-+#else
-+ priv->prom_net_dev->open = ipw_prom_open;
-+ priv->prom_net_dev->stop = ipw_prom_stop;
-+ priv->prom_net_dev->hard_start_xmit = ipw_prom_hard_start_xmit;
-+#endif
-
- priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR;
- SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev);
-@@ -11580,6 +11588,7 @@
-
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- static const struct net_device_ops ipw_netdev_ops = {
- .ndo_init = ipw_net_init,
- .ndo_open = ipw_net_open,
-@@ -11590,6 +11599,7 @@
- .ndo_change_mtu = ieee80211_change_mtu,
- .ndo_validate_addr = eth_validate_addr,
- };
-+#endif
-
- static int __devinit ipw_pci_probe(struct pci_dev *pdev,
- const struct pci_device_id *ent)
-@@ -11691,7 +11701,15 @@
- priv->ieee->perfect_rssi = -20;
- priv->ieee->worst_rssi = -85;
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- net_dev->netdev_ops = &ipw_netdev_ops;
-+#else
-+ net_dev->open = ipw_net_open;
-+ net_dev->stop = ipw_net_stop;
-+ net_dev->init = ipw_net_init;
-+ net_dev->set_multicast_list = ipw_net_set_multicast_list;
-+ net_dev->set_mac_address = ipw_net_set_mac_address;
-+#endif
- priv->wireless_data.spy_data = &priv->ieee->spy_data;
- net_dev->wireless_data = &priv->wireless_data;
- net_dev->wireless_handlers = &ipw_wx_handler_def;
+ priv->wireless_data.libipw = priv->ieee;
--- 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 @@