strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -821,7 +821,7 @@ static void ieee80211_if_setup(struct ne
+@@ -930,7 +930,7 @@ static void ieee80211_if_setup(struct ne
{
ether_setup(dev);
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
dev->destructor = free_netdev;
}
-@@ -968,7 +968,7 @@ static void ieee80211_setup_sdata(struct
+@@ -1077,7 +1077,7 @@ static void ieee80211_setup_sdata(struct
/* and set some type-dependent values */
sdata->vif.type = type;
sdata->vif.p2p = false;
sdata->wdev.iftype = type;
sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE);
-@@ -1009,7 +1009,7 @@ static void ieee80211_setup_sdata(struct
+@@ -1118,7 +1118,7 @@ static void ieee80211_setup_sdata(struct
break;
case NL80211_IFTYPE_MONITOR:
sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
* For RX we handle drivers that zero-pad to end-of-packet.
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -822,6 +822,11 @@ static void ieee80211_if_setup(struct ne
+@@ -931,6 +931,11 @@ static void ieee80211_if_setup(struct ne
ether_setup(dev);
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
netdev_attach_ops(dev, &ieee80211_dataif_ops);
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1288,6 +1288,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1397,6 +1397,7 @@ 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 */
-@@ -1296,6 +1297,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1405,6 +1406,7 @@ int ieee80211_if_add(struct ieee80211_lo
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
rdev->rfkill_ops.set_block = cfg80211_rfkill_set_block;
rdev->rfkill = rfkill_alloc(dev_name(&rdev->wiphy.dev),
-@@ -749,8 +753,10 @@ static int cfg80211_netdev_notifier_call
+@@ -822,8 +826,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")) {
-@@ -930,6 +936,7 @@ static struct notifier_block cfg80211_ne
+@@ -1014,6 +1020,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;
-@@ -947,14 +954,17 @@ static void __net_exit cfg80211_pernet_e
+@@ -1031,14 +1038,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)
-@@ -989,8 +999,10 @@ out_fail_nl80211:
+@@ -1073,8 +1083,10 @@ out_fail_nl80211:
out_fail_notifier:
wiphy_sysfs_exit();
out_fail_sysfs:
return err;
}
subsys_initcall(cfg80211_init);
-@@ -1002,7 +1014,9 @@ static void __exit cfg80211_exit(void)
+@@ -1086,7 +1098,9 @@ static void __exit cfg80211_exit(void)
unregister_netdevice_notifier(&cfg80211_netdev_notifier);
wiphy_sysfs_exit();
regulatory_exit();
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -2111,6 +2111,9 @@ struct wiphy_wowlan_support {
+@@ -2128,6 +2128,9 @@ struct wiphy_wowlan_support {
struct wiphy {
/* assign these fields before you register the wiphy */
if (ret < 0) {
wl1271_error("request_irq() failed: %d", ret);
goto out_free_hw;
-@@ -5570,7 +5581,11 @@ out_unreg:
+@@ -5572,7 +5583,11 @@ out_unreg:
wl1271_unregister_hw(wl);
out_irq:
out_free_hw:
wlcore_free_hw(wl);
-@@ -5589,7 +5604,12 @@ int __devexit wlcore_remove(struct platf
+@@ -5591,7 +5606,12 @@ int __devexit wlcore_remove(struct platf
disable_irq_wake(wl->irq);
}
wl1271_unregister_hw(wl);
device_initialize(&rdev->wiphy.dev);
rdev->wiphy.dev.class = &ieee80211_class;
rdev->wiphy.dev.platform_data = rdev;
-@@ -777,6 +773,15 @@ static int cfg80211_netdev_notifier_call
+@@ -850,6 +846,15 @@ static int cfg80211_netdev_notifier_call
wdev->sme_state = CFG80211_SME_IDLE;
mutex_unlock(&rdev->devlist_mtx);
#ifdef CONFIG_CFG80211_WEXT
#define BCMA_PM_OPS (&bcma_pm_ops)
#else /* CONFIG_PM */
-@@ -281,7 +285,12 @@ static struct pci_driver bcma_pci_bridge
+@@ -282,7 +286,12 @@ static struct pci_driver bcma_pci_bridge
.id_table = bcma_pci_bridge_tbl,
.probe = bcma_host_pci_probe,
.remove = __devexit_p(bcma_host_pci_remove),
static int __init
--- a/drivers/net/wireless/iwlegacy/common.c
+++ b/drivers/net/wireless/iwlegacy/common.c
-@@ -4909,15 +4909,17 @@ il_pci_resume(struct device *device)
+@@ -4910,15 +4910,17 @@ il_pci_resume(struct device *device)
}
EXPORT_SYMBOL(il_pci_resume);
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1958,6 +1958,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
+@@ -1960,6 +1960,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
goto fail;
}
if (unlikely(!multicast && skb->sk &&
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS)) {
struct sk_buff *orig_skb = skb;
-@@ -1996,6 +1997,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
+@@ -1998,6 +1999,7 @@ netdev_tx_t ieee80211_subif_start_xmit(s
skb = orig_skb;
}
}
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
-@@ -720,9 +720,11 @@ static void wdev_cleanup_work(struct wor
+@@ -738,9 +738,11 @@ static void wdev_cleanup_work(struct wor
dev_put(wdev->netdev);
}
};
+#endif
- static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
- unsigned long state,
+ static struct ieee80211_channel *
+ cfg80211_get_any_chan(struct cfg80211_registered_device *rdev)
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
@@ -528,9 +528,11 @@ static struct device *bnep_get_device(st
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1390,6 +1390,7 @@ void ieee80211_if_remove(struct ieee8021
+@@ -1499,6 +1499,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;
-@@ -1409,6 +1410,22 @@ void ieee80211_remove_interfaces(struct
+@@ -1518,6 +1519,22 @@ void ieee80211_remove_interfaces(struct
unregister_netdevice_many(&unreg_list);
list_del(&unreg_list);
}
+}
+#endif
- static u32 ieee80211_idle_off(struct ieee80211_local *local,
- const char *reason)
+ static int netdev_notify(struct notifier_block *nb,
+ unsigned long state,
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1478,6 +1478,10 @@ void ieee80211_xmit(struct ieee80211_sub
+@@ -1480,6 +1480,10 @@ void ieee80211_xmit(struct ieee80211_sub
return;
}
p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
-@@ -2563,15 +2563,21 @@ struct mwl8k_cmd_mac_multicast_adr {
+@@ -2564,15 +2564,21 @@ struct mwl8k_cmd_mac_multicast_adr {
static struct mwl8k_cmd_pkt *
__mwl8k_cmd_mac_multicast_adr(struct ieee80211_hw *hw, int allmulti,
if (allmulti || mc_count > priv->num_mcaddrs) {
allmulti = 1;
-@@ -2592,13 +2598,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
+@@ -2593,13 +2599,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
if (allmulti) {
cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST);
} else if (mc_count) {
}
}
-@@ -4822,7 +4842,11 @@ mwl8k_bss_info_changed(struct ieee80211_
+@@ -4823,7 +4843,11 @@ mwl8k_bss_info_changed(struct ieee80211_
}
static u64 mwl8k_prepare_multicast(struct ieee80211_hw *hw,
{
struct mwl8k_cmd_pkt *cmd;
-@@ -4833,7 +4857,11 @@ static u64 mwl8k_prepare_multicast(struc
+@@ -4834,7 +4858,11 @@ static u64 mwl8k_prepare_multicast(struc
* we'll end up throwing this packet away and creating a new
* one in mwl8k_configure_filter().
*/
return (unsigned long)cmd;
}
-@@ -4955,7 +4983,11 @@ static void mwl8k_configure_filter(struc
+@@ -4956,7 +4984,11 @@ static void mwl8k_configure_filter(struc
*/
if (*total_flags & FIF_ALLMULTI) {
kfree(cmd);
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -562,8 +562,13 @@ static void ieee80211_do_stop(struct iee
+@@ -675,8 +675,13 @@ static void ieee80211_do_stop(struct iee
netif_addr_lock_bh(sdata->dev);
spin_lock_bh(&local->filter_lock);
spin_unlock_bh(&local->filter_lock);
netif_addr_unlock_bh(sdata->dev);
-@@ -737,7 +742,12 @@ static void ieee80211_set_multicast_list
+@@ -846,7 +851,12 @@ static void ieee80211_set_multicast_list
sdata->flags ^= IEEE80211_SDATA_PROMISC;
}
spin_lock_bh(&local->filter_lock);
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
-@@ -798,7 +798,7 @@ int cfg80211_change_iface(struct cfg8021
+@@ -817,7 +817,7 @@ int cfg80211_change_iface(struct cfg8021
return -EOPNOTSUPP;
/* if it's part of a bridge, reject changing type to station/ibss */
ntype == NL80211_IFTYPE_P2P_CLIENT))
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -1797,7 +1797,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -1803,7 +1803,7 @@ static int nl80211_valid_4addr(struct cf
enum nl80211_iftype iftype)
{
if (!use_4addr) {
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -1118,6 +1118,10 @@ static void __exit ieee80211_exit(void)
+@@ -1123,6 +1123,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();
--- a/drivers/net/wireless/iwlwifi/iwl-debug.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debug.c
-@@ -138,8 +138,9 @@ void __iwl_dbg(struct device *dev,
+@@ -135,8 +135,9 @@ void __iwl_dbg(struct device *dev,
va_copy(args2, args);
vaf.va = &args2;
-obj-$(CONFIG_WEXT_PRIV) += wext-priv.o
-
cfg80211-y += core.o sysfs.o radiotap.o util.o reg.o scan.o nl80211.o
- cfg80211-y += mlme.o ibss.o sme.o chan.o ethtool.o mesh.o
+ cfg80211-y += mlme.o ibss.o sme.o chan.o ethtool.o mesh.o ap.o
cfg80211-$(CONFIG_CFG80211_DEBUGFS) += debugfs.o