--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
-@@ -274,6 +274,7 @@ response_error:
+@@ -275,6 +275,7 @@ response_error:
return -EDOM;
}
/* same as usbnet_netdev_ops but MTU change not allowed */
static const struct net_device_ops rndis_netdev_ops = {
.ndo_open = usbnet_open,
-@@ -283,6 +284,7 @@ static const struct net_device_ops rndis
+@@ -284,6 +285,7 @@ static const struct net_device_ops rndis
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
int
generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
-@@ -345,7 +347,11 @@ generic_rndis_bind(struct usbnet *dev, s
+@@ -346,7 +348,11 @@ generic_rndis_bind(struct usbnet *dev, s
dev->rx_urb_size &= ~(dev->maxpacket - 1);
u.init->max_transfer_size = cpu_to_le32(dev->rx_urb_size);
if (unlikely(retval < 0)) {
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1236,6 +1236,7 @@ void usbnet_disconnect (struct usb_inter
+@@ -1237,6 +1237,7 @@ void usbnet_disconnect (struct usb_inter
}
EXPORT_SYMBOL_GPL(usbnet_disconnect);
static const struct net_device_ops usbnet_netdev_ops = {
.ndo_open = usbnet_open,
.ndo_stop = usbnet_stop,
-@@ -1245,6 +1246,7 @@ static const struct net_device_ops usbne
+@@ -1246,6 +1247,7 @@ static const struct net_device_ops usbne
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
/*-------------------------------------------------------------------------*/
-@@ -1324,7 +1326,15 @@ usbnet_probe (struct usb_interface *udev
+@@ -1325,7 +1327,15 @@ usbnet_probe (struct usb_interface *udev
net->features |= NETIF_F_HIGHDMA;
#endif
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
-@@ -3047,6 +3047,7 @@ static int bcm4320b_early_init(struct us
+@@ -3048,6 +3048,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,
-@@ -3057,6 +3058,7 @@ static const struct net_device_ops rndis
+@@ -3058,6 +3059,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)
{
-@@ -3104,7 +3106,11 @@ static int rndis_wlan_bind(struct usbnet
+@@ -3105,7 +3107,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.
*/
retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -666,6 +666,7 @@ static u16 ieee80211_netdev_select_queue
+@@ -667,6 +667,7 @@ static u16 ieee80211_netdev_select_queue
return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
}
static const struct net_device_ops ieee80211_dataif_ops = {
.ndo_open = ieee80211_open,
.ndo_stop = ieee80211_stop,
-@@ -676,6 +677,7 @@ static const struct net_device_ops ieee8
+@@ -677,6 +678,7 @@ static const struct net_device_ops ieee8
.ndo_set_mac_address = ieee80211_change_mac,
.ndo_select_queue = ieee80211_netdev_select_queue,
};
static u16 ieee80211_monitor_select_queue(struct net_device *dev,
struct sk_buff *skb)
-@@ -710,6 +712,7 @@ static u16 ieee80211_monitor_select_queu
+@@ -711,6 +713,7 @@ static u16 ieee80211_monitor_select_queu
return ieee80211_downgrade_queue(local, skb);
}
static const struct net_device_ops ieee80211_monitorif_ops = {
.ndo_open = ieee80211_open,
.ndo_stop = ieee80211_stop,
-@@ -720,14 +723,28 @@ static const struct net_device_ops ieee8
+@@ -721,14 +724,28 @@ static const struct net_device_ops ieee8
.ndo_set_mac_address = eth_mac_addr,
.ndo_select_queue = ieee80211_monitor_select_queue,
};
/*
* Helper function to initialise an interface to a specific type.
*/
-@@ -739,7 +756,11 @@ static void ieee80211_setup_sdata(struct
+@@ -740,7 +757,11 @@ static void ieee80211_setup_sdata(struct
/* and set some type-dependent values */
sdata->vif.type = type;
sdata->wdev.iftype = type;
/* only monitor differs */
-@@ -762,7 +783,13 @@ static void ieee80211_setup_sdata(struct
+@@ -763,7 +784,13 @@ 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;
-@@ -943,6 +970,8 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -944,6 +971,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 */
-@@ -951,6 +980,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -952,6 +981,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)
-@@ -996,6 +1026,10 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -997,6 +1027,10 @@ int ieee80211_if_add(struct ieee80211_lo
if (ret)
goto fail;
ieee80211_sdata_set_mesh_id(sdata,
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
-@@ -2109,6 +2109,7 @@ static int __devinit b44_get_invariants(
+@@ -2110,6 +2110,7 @@ static int __devinit b44_get_invariants(
return err;
}
static const struct net_device_ops b44_netdev_ops = {
.ndo_open = b44_open,
.ndo_stop = b44_close,
-@@ -2124,6 +2125,7 @@ static const struct net_device_ops b44_n
+@@ -2125,6 +2126,7 @@ static const struct net_device_ops b44_n
.ndo_poll_controller = b44_poll_controller,
#endif
};
static int __devinit b44_init_one(struct ssb_device *sdev,
const struct ssb_device_id *ent)
-@@ -2163,9 +2165,26 @@ static int __devinit b44_init_one(struct
+@@ -2164,9 +2166,26 @@ static int __devinit b44_init_one(struct
bp->rx_pending = B44_DEF_RX_RING_PENDING;
bp->tx_pending = B44_DEF_TX_RING_PENDING;
--- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c
-@@ -340,6 +340,7 @@ static const int compat_event_type_size[
+@@ -341,6 +341,7 @@ static const int compat_event_type_size[
/* IW event code */
static int __net_init wext_pernet_init(struct net *net)
{
skb_queue_head_init(&net->wext_nlevents);
-@@ -382,6 +383,29 @@ static void wireless_nlevent_process(str
+@@ -383,6 +384,29 @@ static void wireless_nlevent_process(str
static DECLARE_WORK(wireless_nlevent_work, wireless_nlevent_process);
static struct nlmsghdr *rtnetlink_ifinfo_prep(struct net_device *dev,
struct sk_buff *skb)
{
-@@ -592,8 +616,13 @@ void wireless_send_event(struct net_devi
+@@ -593,8 +617,13 @@ void wireless_send_event(struct net_devi
skb_shinfo(skb)->frag_list = compskb;
#endif
}
EXPORT_SYMBOL(wireless_send_event);
-@@ -902,8 +931,13 @@ static int wireless_process_ioctl(struct
+@@ -903,8 +932,13 @@ static int wireless_process_ioctl(struct
return private(dev, iwr, cmd, info, handler);
}
/* Old driver API : call driver ioctl handler */
priv->wireless_data.libipw = priv->ieee;
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
-@@ -11649,6 +11649,7 @@ static netdev_tx_t ipw_prom_hard_start_x
+@@ -11659,6 +11659,7 @@ static netdev_tx_t ipw_prom_hard_start_x
return NETDEV_TX_OK;
}
static const struct net_device_ops ipw_prom_netdev_ops = {
.ndo_open = ipw_prom_open,
.ndo_stop = ipw_prom_stop,
-@@ -11657,6 +11658,7 @@ static const struct net_device_ops ipw_p
+@@ -11667,6 +11668,7 @@ static const struct net_device_ops ipw_p
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
static int ipw_prom_alloc(struct ipw_priv *priv)
{
-@@ -11677,7 +11679,13 @@ static int ipw_prom_alloc(struct ipw_pri
+@@ -11687,7 +11689,13 @@ static int ipw_prom_alloc(struct ipw_pri
memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN);
priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP;
priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR;
SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev);
-@@ -11705,6 +11713,7 @@ static void ipw_prom_free(struct ipw_pri
+@@ -11715,6 +11723,7 @@ static void ipw_prom_free(struct ipw_pri
#endif
static const struct net_device_ops ipw_netdev_ops = {
.ndo_init = ipw_net_init,
.ndo_open = ipw_net_open,
-@@ -11715,6 +11724,7 @@ static const struct net_device_ops ipw_n
+@@ -11725,6 +11734,7 @@ static const struct net_device_ops ipw_n
.ndo_change_mtu = libipw_change_mtu,
.ndo_validate_addr = eth_validate_addr,
};
static int __devinit ipw_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
-@@ -11816,7 +11826,15 @@ static int __devinit ipw_pci_probe(struc
+@@ -11826,7 +11836,15 @@ static int __devinit ipw_pci_probe(struc
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -886,6 +886,7 @@ static void lbs_free_adapter(struct lbs_
+@@ -887,6 +887,7 @@ static void lbs_free_adapter(struct lbs_
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,
-@@ -896,6 +897,7 @@ static const struct net_device_ops lbs_n
+@@ -897,6 +898,7 @@ static const struct net_device_ops lbs_n
.ndo_change_mtu = eth_change_mtu,
.ndo_validate_addr = eth_validate_addr,
};
/**
* @brief This function adds the card. it will probe the
-@@ -941,7 +943,16 @@ struct lbs_private *lbs_add_card(void *c
+@@ -942,7 +944,16 @@ struct lbs_private *lbs_add_card(void *c
wdev->netdev = dev;
priv->dev = dev;
dev->watchdog_timeo = 5 * HZ;
dev->ethtool_ops = &lbs_ethtool_ops;
#ifdef WIRELESS_EXT
-@@ -1247,11 +1258,13 @@ out:
+@@ -1248,11 +1259,13 @@ out:
lbs_deb_leave(LBS_DEB_MAIN);
}
static int lbs_add_rtap(struct lbs_private *priv)
{
-@@ -1272,7 +1285,13 @@ static int lbs_add_rtap(struct lbs_priva
+@@ -1273,7 +1286,13 @@ static int lbs_add_rtap(struct lbs_priva
memcpy(rtap_dev->dev_addr, priv->current_addr, ETH_ALEN);
rtap_dev->type = ARPHRD_IEEE80211_RADIOTAP;
#define LBS_DEB_LEAVE 0x00000002
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -1015,16 +1015,22 @@ static struct device_driver mac80211_hws
+@@ -1016,16 +1016,22 @@ static struct device_driver mac80211_hws
.name = "mac80211_hwsim"
};
dev->tx_queue_len = 0;
--- a/drivers/net/wireless/orinoco/main.c
+++ b/drivers/net/wireless/orinoco/main.c
-@@ -2077,6 +2077,7 @@ int orinoco_init(struct orinoco_private
+@@ -2078,6 +2078,7 @@ int orinoco_init(struct orinoco_private
}
EXPORT_SYMBOL(orinoco_init);
static const struct net_device_ops orinoco_netdev_ops = {
.ndo_open = orinoco_open,
.ndo_stop = orinoco_stop,
-@@ -2088,6 +2089,7 @@ static const struct net_device_ops orino
+@@ -2089,6 +2090,7 @@ static const struct net_device_ops orino
.ndo_tx_timeout = orinoco_tx_timeout,
.ndo_get_stats = orinoco_get_stats,
};
/* Allocate private data.
*
-@@ -2210,7 +2212,18 @@ int orinoco_if_add(struct orinoco_privat
+@@ -2211,7 +2213,18 @@ int orinoco_if_add(struct orinoco_privat
/* Setup / override net_device fields */
dev->ieee80211_ptr = wdev;
#ifdef WIRELESS_SPY
--- a/net/bluetooth/bnep/netdev.c
+++ b/net/bluetooth/bnep/netdev.c
-@@ -167,8 +167,12 @@ static inline int bnep_net_proto_filter(
+@@ -168,8 +168,12 @@ static inline int bnep_net_proto_filter(
}
#endif
{
struct bnep_session *s = netdev_priv(dev);
struct sock *sk = s->sock->sk;
-@@ -209,6 +213,7 @@ static netdev_tx_t bnep_net_xmit(struct
+@@ -210,6 +214,7 @@ static netdev_tx_t bnep_net_xmit(struct
return NETDEV_TX_OK;
}
static const struct net_device_ops bnep_netdev_ops = {
.ndo_open = bnep_net_open,
.ndo_stop = bnep_net_close,
-@@ -220,6 +225,16 @@ static const struct net_device_ops bnep_
+@@ -221,6 +226,16 @@ static const struct net_device_ops bnep_
.ndo_change_mtu = eth_change_mtu,
};
void bnep_net_setup(struct net_device *dev)
{
-@@ -228,7 +243,18 @@ void bnep_net_setup(struct net_device *d
+@@ -229,7 +244,18 @@ void bnep_net_setup(struct net_device *d
dev->addr_len = ETH_ALEN;
ether_setup(dev);
}
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
-@@ -2202,6 +2202,7 @@ static void atl1e_shutdown(struct pci_de
+@@ -2201,6 +2201,7 @@ static void atl1e_shutdown(struct pci_de
atl1e_suspend(pdev, PMSG_SUSPEND);
}
static const struct net_device_ops atl1e_netdev_ops = {
.ndo_open = atl1e_open,
.ndo_stop = atl1e_close,
-@@ -2219,6 +2220,7 @@ static const struct net_device_ops atl1e
+@@ -2218,6 +2219,7 @@ static const struct net_device_ops atl1e
#endif
};
static int atl1e_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
{
-@@ -2226,7 +2228,23 @@ static int atl1e_init_netdev(struct net_
+@@ -2225,7 +2227,23 @@ static int atl1e_init_netdev(struct net_
pci_set_drvdata(pdev, netdev);
netdev->irq = pdev->irq;
atl1e_set_ethtool_ops(netdev);
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
-@@ -2534,6 +2534,7 @@ static void atl1c_shutdown(struct pci_de
+@@ -2533,6 +2533,7 @@ static void atl1c_shutdown(struct pci_de
atl1c_suspend(pdev, PMSG_SUSPEND);
}
static const struct net_device_ops atl1c_netdev_ops = {
.ndo_open = atl1c_open,
.ndo_stop = atl1c_close,
-@@ -2550,6 +2551,7 @@ static const struct net_device_ops atl1c
+@@ -2549,6 +2550,7 @@ static const struct net_device_ops atl1c
.ndo_poll_controller = atl1c_netpoll,
#endif
};
static int atl1c_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
{
-@@ -2557,7 +2559,23 @@ static int atl1c_init_netdev(struct net_
+@@ -2556,7 +2558,23 @@ static int atl1c_init_netdev(struct net_
pci_set_drvdata(pdev, netdev);
netdev->irq = pdev->irq;
--- a/drivers/net/wireless/orinoco/wext.c
+++ b/drivers/net/wireless/orinoco/wext.c
-@@ -28,8 +28,22 @@ static int orinoco_set_key(struct orinoc
+@@ -29,8 +29,22 @@ static int orinoco_set_key(struct orinoc
enum orinoco_alg alg, const u8 *key, int key_len,
const u8 *seq, int seq_len)
{
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
-@@ -426,9 +426,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -427,9 +427,14 @@ cfg80211_bss_update(struct cfg80211_regi
size_t used = dev->wiphy.bss_priv_size + sizeof(*res);
size_t ielen = res->pub.len_proberesp_ies;
memcpy(found->pub.proberesp_ies,
res->pub.proberesp_ies, ielen);
found->pub.len_proberesp_ies = ielen;
-@@ -459,9 +464,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -460,9 +465,14 @@ cfg80211_bss_update(struct cfg80211_regi
size_t used = dev->wiphy.bss_priv_size + sizeof(*res);
size_t ielen = res->pub.len_beacon_ies;
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/miscdevice.h>
-@@ -62,7 +62,7 @@ struct rfkill {
+@@ -63,7 +63,7 @@ struct rfkill {
const struct rfkill_ops *ops;
void *data;
struct led_trigger led_trigger;
const char *ledtrigname;
#endif
-@@ -123,7 +123,7 @@ static struct {
+@@ -124,7 +124,7 @@ static struct {
static bool rfkill_epo_lock_active;
static void rfkill_led_trigger_event(struct rfkill *rfkill)
{
struct led_trigger *trigger;
-@@ -317,7 +317,7 @@ static void rfkill_set_block(struct rfki
+@@ -318,7 +318,7 @@ static void rfkill_set_block(struct rfki
rfkill_event(rfkill);
}
static atomic_t rfkill_input_disabled = ATOMIC_INIT(0);
/**
-@@ -818,7 +818,7 @@ static int rfkill_resume(struct device *
+@@ -819,7 +819,7 @@ static int rfkill_resume(struct device *
}
static struct class rfkill_class = {
.dev_release = rfkill_release,
.dev_attrs = rfkill_dev_attrs,
.dev_uevent = rfkill_dev_uevent,
-@@ -964,7 +964,7 @@ int __must_check rfkill_register(struct
+@@ -965,7 +965,7 @@ int __must_check rfkill_register(struct
if (!rfkill->persistent || rfkill_epo_lock_active) {
schedule_work(&rfkill->sync_work);
} else {
bool soft_blocked = !!(rfkill->state & RFKILL_BLOCK_SW);
if (!atomic_read(&rfkill_input_disabled))
-@@ -1192,7 +1192,7 @@ static int rfkill_fop_release(struct ino
+@@ -1193,7 +1193,7 @@ static int rfkill_fop_release(struct ino
list_for_each_entry_safe(ev, tmp, &data->events, list)
kfree(ev);
if (data->input_handler)
if (atomic_dec_return(&rfkill_input_disabled) == 0)
printk(KERN_DEBUG "rfkill: input handler enabled\n");
-@@ -1203,7 +1203,7 @@ static int rfkill_fop_release(struct ino
+@@ -1204,7 +1204,7 @@ static int rfkill_fop_release(struct ino
return 0;
}
static long rfkill_fop_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{
-@@ -1236,7 +1236,7 @@ static const struct file_operations rfki
+@@ -1237,7 +1237,7 @@ static const struct file_operations rfki
.write = rfkill_fop_write,
.poll = rfkill_fop_poll,
.release = rfkill_fop_release,
.unlocked_ioctl = rfkill_fop_ioctl,
.compat_ioctl = rfkill_fop_ioctl,
#endif
-@@ -1266,7 +1266,7 @@ static int __init rfkill_init(void)
+@@ -1267,7 +1267,7 @@ static int __init rfkill_init(void)
goto out;
}
error = rfkill_handler_init();
if (error) {
misc_deregister(&rfkill_miscdev);
-@@ -1282,7 +1282,7 @@ subsys_initcall(rfkill_init);
+@@ -1283,7 +1283,7 @@ subsys_initcall(rfkill_init);
static void __exit rfkill_exit(void)
{
#include <net/cfg80211.h>
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -3219,7 +3219,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+@@ -3220,7 +3220,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw
pCap->hw_caps |= ATH9K_HW_CAP_ENHANCEDPM;
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -29,7 +29,9 @@ static struct genl_family nl80211_fam =
+@@ -30,7 +30,9 @@ static struct genl_family nl80211_fam =
.hdrsize = 0, /* no private header */
.version = 1, /* no particular meaning now */
.maxattr = NL80211_ATTR_MAX,
};
/* internal helper: get rdev and dev */
-@@ -4188,7 +4190,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4190,7 +4192,9 @@ static int nl80211_wiphy_netns(struct sk
err = cfg80211_switch_netns(rdev, net);
out_put_net:
out_rtnl:
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
-@@ -223,6 +223,7 @@ int cfg80211_dev_rename(struct cfg80211_
+@@ -224,6 +224,7 @@ int cfg80211_dev_rename(struct cfg80211_
return 0;
}
int cfg80211_switch_netns(struct cfg80211_registered_device *rdev,
struct net *net)
{
-@@ -258,6 +259,7 @@ int cfg80211_switch_netns(struct cfg8021
+@@ -259,6 +260,7 @@ int cfg80211_switch_netns(struct cfg8021
return err;
}
static void cfg80211_rfkill_poll(struct rfkill *rfkill, void *data)
{
-@@ -370,7 +372,9 @@ struct wiphy *wiphy_new(const struct cfg
+@@ -371,7 +373,9 @@ struct wiphy *wiphy_new(const struct cfg
rdev->wiphy.flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;
#endif
rdev->rfkill_ops.set_block = cfg80211_rfkill_set_block;
rdev->rfkill = rfkill_alloc(dev_name(&rdev->wiphy.dev),
-@@ -683,8 +687,10 @@ static int cfg80211_netdev_notifier_call
+@@ -684,8 +688,10 @@ static int cfg80211_netdev_notifier_call
mutex_lock(&rdev->devlist_mtx);
list_add_rcu(&wdev->list, &rdev->netdev_list);
rdev->devlist_generation++;
if (sysfs_create_link(&dev->dev.kobj, &rdev->wiphy.dev.kobj,
"phy80211")) {
-@@ -827,6 +833,7 @@ static struct notifier_block cfg80211_ne
+@@ -828,6 +834,7 @@ static struct notifier_block cfg80211_ne
.notifier_call = cfg80211_netdev_notifier_call,
};
static void __net_exit cfg80211_pernet_exit(struct net *net)
{
struct cfg80211_registered_device *rdev;
-@@ -844,14 +851,17 @@ static void __net_exit cfg80211_pernet_e
+@@ -845,14 +852,17 @@ static void __net_exit cfg80211_pernet_e
static struct pernet_operations cfg80211_pernet_ops = {
.exit = cfg80211_pernet_exit,
};
err = wiphy_sysfs_init();
if (err)
-@@ -886,8 +896,10 @@ out_fail_nl80211:
+@@ -887,8 +897,10 @@ out_fail_nl80211:
out_fail_notifier:
wiphy_sysfs_exit();
out_fail_sysfs:
return err;
}
subsys_initcall(cfg80211_init);
-@@ -899,7 +911,9 @@ static void cfg80211_exit(void)
+@@ -900,7 +912,9 @@ static void cfg80211_exit(void)
unregister_netdevice_notifier(&cfg80211_netdev_notifier);
wiphy_sysfs_exit();
regulatory_exit();
module_exit(cfg80211_exit);
--- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c
-@@ -399,7 +399,11 @@ static void wireless_nlevent_process(uns
+@@ -400,7 +400,11 @@ static void wireless_nlevent_process(uns
{
struct sk_buff *skb;
while ((skb = skb_dequeue(&wireless_nlevent_queue)))
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
-@@ -1055,7 +1055,9 @@ static struct usb_driver p54u_driver = {
+@@ -1056,7 +1056,9 @@ static struct usb_driver p54u_driver = {
.resume = p54u_resume,
.reset_resume = p54u_resume,
#endif /* CONFIG_PM */
static int __init p54u_init(void)
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
-@@ -979,7 +979,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -950,7 +950,9 @@ static struct usb_driver ath9k_hif_usb_d
.reset_resume = ath9k_hif_usb_resume,
#endif
.id_table = ath9k_hif_usb_ids,
--- a/drivers/net/wireless/libertas/assoc.c
+++ b/drivers/net/wireless/libertas/assoc.c
-@@ -5,6 +5,9 @@
- #include <linux/ieee80211.h>
+@@ -6,6 +6,9 @@
#include <linux/if_arp.h>
+ #include <linux/slab.h>
#include <net/lib80211.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
+#include <asm/unaligned.h>
#include <linux/vmalloc.h>
--- a/drivers/net/wireless/wl12xx/wl1251_spi.c
+++ b/drivers/net/wireless/wl12xx/wl1251_spi.c
-@@ -24,6 +24,9 @@
- #include <linux/irq.h>
+@@ -25,6 +25,9 @@
#include <linux/module.h>
+ #include <linux/slab.h>
#include <linux/crc7.h>
+#if (LINUX_VERSION_CODE == KERNEL_VERSION(2,6,28))
+#include <linux/device.h>
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
-@@ -21,6 +21,9 @@
+@@ -22,6 +22,9 @@
#include "aes_ccm.h"
#include "aes_cmac.h"
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -14,7 +14,9 @@
+@@ -15,7 +15,9 @@
#include <linux/rtnetlink.h>
#include <linux/netlink.h>
#include <linux/etherdevice.h>
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
-@@ -22,7 +22,7 @@ struct rate_control_alg {
+@@ -23,7 +23,7 @@ struct rate_control_alg {
static LIST_HEAD(rate_ctrl_algs);
static DEFINE_MUTEX(rate_ctrl_mutex);
module_param(ieee80211_default_rc_algo, charp, 0644);
MODULE_PARM_DESC(ieee80211_default_rc_algo,
"Default rate control algorithm for mac80211 to use");
-@@ -117,8 +117,8 @@ ieee80211_rate_control_ops_get(const cha
+@@ -118,8 +118,8 @@ ieee80211_rate_control_ops_get(const cha
ops = ieee80211_try_rate_control_ops_get(ieee80211_default_rc_algo);
/* try built-in one if specific alg requested but not found */
--- a/drivers/net/wireless/iwlwifi/Makefile
+++ b/drivers/net/wireless/iwlwifi/Makefile
-@@ -11,7 +11,7 @@ CFLAGS_iwl-devtrace.o := -I$(src)
- obj-$(CONFIG_IWLAGN) += iwlagn.o
- iwlagn-objs := iwl-agn.o iwl-agn-rs.o iwl-agn-led.o iwl-agn-ict.o
+@@ -13,7 +13,7 @@ iwlagn-objs := iwl-agn.o iwl-agn-rs.o i
+ iwlagn-objs += iwl-agn-ucode.o iwl-agn-hcmd.o iwl-agn-tx.o
+ iwlagn-objs += iwl-agn-lib.o
-iwlagn-$(CONFIG_IWL4965) += iwl-4965.o
+iwlagn-$(CONFIG_COMPAT_IWL4965) += iwl-4965.o
iwlagn-$(CONFIG_IWL5000) += iwl-1000.o
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -3725,10 +3725,10 @@ static void __devexit iwl_pci_remove(str
+@@ -3773,10 +3773,10 @@ static void __devexit iwl_pci_remove(str
/* Hardware specific file defines the PCI IDs table for that hardware module */
static DEFINE_PCI_DEVICE_TABLE(iwl_hw_card_ids) = {
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -3916,8 +3916,13 @@ redo:
+@@ -3917,8 +3917,13 @@ redo:
if (dev->dev->bus->bustype == SSB_BUSTYPE_SDIO) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -3957,9 +3962,17 @@ static int b43_wireless_core_start(struc
+@@ -3958,9 +3963,17 @@ static int b43_wireless_core_start(struc
goto out;
}
} else {
if (err) {
b43err(dev->wl, "Cannot request IRQ-%d\n", dev->dev->irq);
goto out;
-@@ -4663,6 +4676,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -4664,6 +4677,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
-@@ -701,6 +701,10 @@ static int cfg80211_netdev_notifier_call
+@@ -702,6 +702,10 @@ static int cfg80211_netdev_notifier_call
wdev->sme_state = CFG80211_SME_IDLE;
mutex_unlock(&rdev->devlist_mtx);
#ifdef CONFIG_CFG80211_WEXT
#if !defined(CONFIG_IWLWIFI_DEVICE_TRACING) || defined(__CHECKER__)
#undef TRACE_EVENT
-@@ -263,4 +265,6 @@
+@@ -263,4 +265,6 @@ TRACE_EVENT(iwlwifi_dev_ucode_event,
#define TRACE_INCLUDE_PATH .
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE iwl-devtrace
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
-@@ -648,9 +648,11 @@ static void wdev_cleanup_work(struct wor
+@@ -649,9 +649,11 @@ static void wdev_cleanup_work(struct wor
dev_put(wdev->netdev);
}
unsigned long state,
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
-@@ -536,9 +536,11 @@ static struct device *bnep_get_device(st
+@@ -537,9 +537,11 @@ static struct device *bnep_get_device(st
return conn ? &conn->dev : NULL;
}
{
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1252,13 +1252,17 @@ static const struct net_device_ops usbne
+@@ -1253,13 +1253,17 @@ static const struct net_device_ops usbne
// precondition: never called in_interrupt
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -2556,7 +2556,12 @@ void ieee80211_rx(struct ieee80211_hw *h
+@@ -2587,7 +2587,12 @@ void ieee80211_rx(struct ieee80211_hw *h
drop:
kfree_skb(skb);
}
--- a/net/bluetooth/af_bluetooth.c
+++ b/net/bluetooth/af_bluetooth.c
-@@ -126,8 +126,12 @@ int bt_sock_unregister(int proto)
+@@ -125,8 +125,12 @@ int bt_sock_unregister(int proto)
}
EXPORT_SYMBOL(bt_sock_unregister);
{
int err;
-@@ -145,7 +149,11 @@ static int bt_sock_create(struct net *ne
+@@ -144,7 +148,11 @@ static int bt_sock_create(struct net *ne
read_lock(&bt_proto_lock);
if (bt_proto[proto] && try_module_get(bt_proto[proto]->owner)) {
bt_sock_reclassify_lock(sock, proto);
module_put(bt_proto[proto]->owner);
}
-@@ -258,7 +266,11 @@ int bt_sock_recvmsg(struct kiocb *iocb,
+@@ -257,7 +265,11 @@ int bt_sock_recvmsg(struct kiocb *iocb,
skb_reset_transport_header(skb);
err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
if (err == 0)
skb_free_datagram(sk, skb);
-@@ -338,7 +350,11 @@ int bt_sock_ioctl(struct socket *sock, u
+@@ -337,7 +349,11 @@ int bt_sock_ioctl(struct socket *sock, u
if (sk->sk_state == BT_LISTEN)
return -EINVAL;
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
-@@ -72,7 +72,11 @@ static struct attribute_group bt_link_gr
+@@ -73,7 +73,11 @@ static struct attribute_group bt_link_gr
.attrs = bt_link_attrs,
};
&bt_link_group,
NULL
};
-@@ -130,7 +134,11 @@ static void del_conn(struct work_struct
+@@ -131,7 +135,11 @@ static void del_conn(struct work_struct
dev = device_find_child(&conn->dev, NULL, __match_tty);
if (!dev)
break;
put_device(dev);
}
-@@ -388,7 +396,11 @@ static struct attribute_group bt_host_gr
+@@ -389,7 +397,11 @@ static struct attribute_group bt_host_gr
.attrs = bt_host_attrs,
};
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1066,6 +1066,7 @@ void ieee80211_if_remove(struct ieee8021
+@@ -1067,6 +1067,7 @@ void ieee80211_if_remove(struct ieee8021
* Remove all interfaces, may only be called at hardware unregistration
* time because it doesn't do RCU-safe list removals.
*/
void ieee80211_remove_interfaces(struct ieee80211_local *local)
{
struct ieee80211_sub_if_data *sdata, *tmp;
-@@ -1082,6 +1083,22 @@ void ieee80211_remove_interfaces(struct
+@@ -1083,6 +1084,22 @@ void ieee80211_remove_interfaces(struct
mutex_unlock(&local->iflist_mtx);
unregister_netdevice_many(&unreg_list);
}
--- a/drivers/net/wireless/libertas/dev.h
+++ b/drivers/net/wireless/libertas/dev.h
-@@ -118,7 +118,11 @@ struct lbs_private {
+@@ -119,7 +119,11 @@ struct lbs_private {
u32 resp_len[2];
/* Events sent from hardware to driver */
struct task_struct *main_thread;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -860,8 +860,14 @@ static int lbs_init_adapter(struct lbs_p
+@@ -861,8 +861,14 @@ static int lbs_init_adapter(struct lbs_p
priv->resp_len[0] = priv->resp_len[1] = 0;
/* Create the event FIFO */
lbs_pr_err("Out of memory allocating event FIFO buffer\n");
goto out;
}
-@@ -877,7 +883,12 @@ static void lbs_free_adapter(struct lbs_
+@@ -878,7 +884,12 @@ static void lbs_free_adapter(struct lbs_
lbs_deb_enter(LBS_DEB_MAIN);
lbs_free_cmd_buffer(priv);
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1564,6 +1564,10 @@ static void ieee80211_xmit(struct ieee80
+@@ -1566,6 +1566,10 @@ static void ieee80211_xmit(struct ieee80
return;
}
ieee80211_set_qos_hdr(local, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2033,8 +2037,15 @@ void ieee80211_tx_pending(unsigned long
+@@ -2035,8 +2039,15 @@ void ieee80211_tx_pending(unsigned long
if (skb_queue_empty(&local->pending[i]))
list_for_each_entry_rcu(sdata, &local->interfaces, list)
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -660,11 +660,13 @@ static void ieee80211_teardown_sdata(str
+@@ -661,11 +661,13 @@ static void ieee80211_teardown_sdata(str
WARN_ON(flushed);
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
static const struct net_device_ops ieee80211_dataif_ops = {
-@@ -679,6 +681,7 @@ static const struct net_device_ops ieee8
+@@ -680,6 +682,7 @@ static const struct net_device_ops ieee8
};
#endif
static u16 ieee80211_monitor_select_queue(struct net_device *dev,
struct sk_buff *skb)
{
-@@ -711,6 +714,7 @@ static u16 ieee80211_monitor_select_queu
+@@ -712,6 +715,7 @@ static u16 ieee80211_monitor_select_queu
return ieee80211_downgrade_queue(local, skb);
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
static const struct net_device_ops ieee80211_monitorif_ops = {
-@@ -735,7 +739,9 @@ static void ieee80211_if_setup(struct ne
+@@ -736,7 +740,9 @@ static void ieee80211_if_setup(struct ne
dev->set_multicast_list = ieee80211_set_multicast_list;
dev->change_mtu = ieee80211_change_mtu;
dev->set_mac_address = ieee80211_change_mac;
dev->open = ieee80211_open;
dev->stop = ieee80211_stop;
/* we will validate the address ourselves in ->open */
-@@ -787,7 +793,9 @@ static void ieee80211_setup_sdata(struct
+@@ -788,7 +794,9 @@ static void ieee80211_setup_sdata(struct
sdata->dev->netdev_ops = &ieee80211_monitorif_ops;
#else
sdata->dev->hard_start_xmit = ieee80211_monitor_start_xmit;
--- a/drivers/net/wireless/orinoco/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco/orinoco_cs.c
-@@ -81,7 +81,11 @@ orinoco_cs_hard_reset(struct orinoco_pri
+@@ -80,7 +80,11 @@ orinoco_cs_hard_reset(struct orinoco_pri
/* We need atomic ops here, because we're not holding the lock */
set_bit(0, &card->hard_reset_in_progress);