wdev->netdev = ndev;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -818,7 +818,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -826,7 +826,7 @@ struct lbs_private *lbs_add_card(void *c
wdev->netdev = dev;
priv->dev = dev;
dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
--- a/drivers/net/wireless/libertas/mesh.c
+++ b/drivers/net/wireless/libertas/mesh.c
-@@ -385,7 +385,7 @@ int lbs_add_mesh(struct lbs_private *pri
+@@ -387,7 +387,7 @@ int lbs_add_mesh(struct lbs_private *pri
mesh_dev->ml_priv = priv;
priv->mesh_dev = mesh_dev;
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
-@@ -439,9 +439,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -502,9 +502,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;
-@@ -475,9 +480,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -538,9 +543,14 @@ cfg80211_bss_update(struct cfg80211_regi
(found->pub.information_elements ==
found->pub.beacon_ies);
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -4288,7 +4288,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4487,7 +4487,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
rdev->rfkill_ops.set_block = cfg80211_rfkill_set_block;
rdev->rfkill = rfkill_alloc(dev_name(&rdev->wiphy.dev),
-@@ -721,8 +725,10 @@ static int cfg80211_netdev_notifier_call
+@@ -726,8 +730,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")) {
-@@ -893,6 +899,7 @@ static struct notifier_block cfg80211_ne
+@@ -903,6 +909,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;
-@@ -910,14 +917,17 @@ static void __net_exit cfg80211_pernet_e
+@@ -920,14 +927,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)
-@@ -952,8 +962,10 @@ out_fail_nl80211:
+@@ -962,8 +972,10 @@ out_fail_nl80211:
out_fail_notifier:
wiphy_sysfs_exit();
out_fail_sysfs:
return err;
}
subsys_initcall(cfg80211_init);
-@@ -965,7 +977,9 @@ static void __exit cfg80211_exit(void)
+@@ -975,7 +987,9 @@ static void __exit cfg80211_exit(void)
unregister_netdevice_notifier(&cfg80211_netdev_notifier);
wiphy_sysfs_exit();
regulatory_exit();
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -3953,8 +3953,13 @@ redo:
+@@ -3962,8 +3962,13 @@ redo:
if (dev->dev->bus->bustype == SSB_BUSTYPE_SDIO) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -3994,9 +3999,17 @@ static int b43_wireless_core_start(struc
+@@ -4003,9 +4008,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;
-@@ -4699,6 +4712,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -4719,6 +4732,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
device_initialize(&rdev->wiphy.dev);
rdev->wiphy.dev.class = &ieee80211_class;
rdev->wiphy.dev.platform_data = rdev;
-@@ -738,6 +734,15 @@ static int cfg80211_netdev_notifier_call
+@@ -743,6 +739,15 @@ static int cfg80211_netdev_notifier_call
wdev->sme_state = CFG80211_SME_IDLE;
mutex_unlock(&rdev->devlist_mtx);
#ifdef CONFIG_CFG80211_WEXT
int ath_pci_init(void)
--- a/drivers/net/wireless/libertas/if_spi.c
+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1244,6 +1244,7 @@ static int __devexit libertas_spi_remove
+@@ -1253,6 +1253,7 @@ static int __devexit libertas_spi_remove
return 0;
}
static int if_spi_suspend(struct device *dev)
{
struct spi_device *spi = to_spi_device(dev);
-@@ -1277,6 +1278,7 @@ static const struct dev_pm_ops if_spi_pm
+@@ -1286,6 +1287,7 @@ static const struct dev_pm_ops if_spi_pm
.suspend = if_spi_suspend,
.resume = if_spi_resume,
};
static struct spi_driver libertas_spi_driver = {
.probe = if_spi_probe,
-@@ -1285,7 +1287,9 @@ static struct spi_driver libertas_spi_dr
+@@ -1294,7 +1296,9 @@ static struct spi_driver libertas_spi_dr
.name = "libertas_spi",
.bus = &spi_bus_type,
.owner = THIS_MODULE,
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
-@@ -682,9 +682,11 @@ static void wdev_cleanup_work(struct wor
+@@ -687,9 +687,11 @@ static void wdev_cleanup_work(struct wor
dev_put(wdev->netdev);
}
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -2940,7 +2940,12 @@ void ieee80211_rx(struct ieee80211_hw *h
+@@ -2945,7 +2945,12 @@ void ieee80211_rx(struct ieee80211_hw *h
drop:
kfree_skb(skb);
}
struct rfcomm_dlc *dlc = dev->dlc;
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
-@@ -438,8 +438,12 @@ static struct sock *sco_sock_alloc(struc
+@@ -429,8 +429,12 @@ static struct sock *sco_sock_alloc(struc
return sk;
}
{
struct sock *sk;
-@@ -655,7 +659,11 @@ static int sco_sock_sendmsg(struct kiocb
+@@ -646,7 +650,11 @@ static int sco_sock_sendmsg(struct kiocb
return err;
}
ieee80211_set_qos_hdr(local, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2083,7 +2087,14 @@ void ieee80211_tx_pending(unsigned long
+@@ -2084,7 +2088,14 @@ void ieee80211_tx_pending(unsigned long
if (skb_queue_empty(&local->pending[i]))
list_for_each_entry_rcu(sdata, &local->interfaces, list)
.remove = __devexit_p(b43_pcmcia_remove),
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -773,7 +773,11 @@ static void if_cs_release(struct pcmcia_
+@@ -780,7 +780,11 @@ static void if_cs_release(struct pcmcia_
lbs_deb_enter(LBS_DEB_CS);
pcmcia_disable_device(p_dev);
if (card->iobase)
ioport_unmap(card->iobase);
-@@ -781,7 +785,7 @@ static void if_cs_release(struct pcmcia_
+@@ -788,7 +792,7 @@ static void if_cs_release(struct pcmcia_
lbs_deb_leave(LBS_DEB_CS);
}
static int if_cs_ioprobe(struct pcmcia_device *p_dev, void *priv_data)
{
p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
-@@ -791,9 +795,39 @@ static int if_cs_ioprobe(struct pcmcia_d
- lbs_pr_err("wrong CIS (check number of IO windows)\n");
+@@ -798,9 +802,39 @@ static int if_cs_ioprobe(struct pcmcia_d
+ pr_err("wrong CIS (check number of IO windows)\n");
return -ENODEV;
}
+#else
}
static int if_cs_probe(struct pcmcia_device *p_dev)
-@@ -815,7 +849,16 @@ static int if_cs_probe(struct pcmcia_dev
+@@ -822,7 +856,16 @@ static int if_cs_probe(struct pcmcia_dev
card->p_dev = p_dev;
p_dev->priv = card;
+#endif
if (pcmcia_loop_config(p_dev, if_cs_ioprobe, NULL)) {
- lbs_pr_err("error in pcmcia_loop_config\n");
-@@ -827,12 +870,26 @@ static int if_cs_probe(struct pcmcia_dev
+ pr_err("error in pcmcia_loop_config\n");
+@@ -834,12 +877,26 @@ static int if_cs_probe(struct pcmcia_dev
* a handler to the interrupt, unless the 'Handler' member of
* the irq structure is initialized.
*/
+ card->iobase = ioport_map(p_dev->io.BasePort1, p_dev->io.NumPorts1);
+#endif
if (!card->iobase) {
- lbs_pr_err("error in ioport_map\n");
+ pr_err("error in ioport_map\n");
ret = -EIO;
-@@ -846,7 +903,17 @@ static int if_cs_probe(struct pcmcia_dev
+@@ -853,7 +910,17 @@ static int if_cs_probe(struct pcmcia_dev
}
/* Finally, report what we've done */
/*
* Most of the libertas cards can do unaligned register access, but some
-@@ -915,7 +982,11 @@ static int if_cs_probe(struct pcmcia_dev
+@@ -922,7 +989,11 @@ static int if_cs_probe(struct pcmcia_dev
priv->fw_ready = 1;
/* Now actually get the IRQ */
+#endif
IRQF_SHARED, DRV_NAME, card);
if (ret) {
- lbs_pr_err("error in request_irq\n");
-@@ -988,7 +1059,13 @@ MODULE_DEVICE_TABLE(pcmcia, if_cs_ids);
+ pr_err("error in request_irq\n");
+@@ -995,7 +1066,13 @@ MODULE_DEVICE_TABLE(pcmcia, if_cs_ids);
static struct pcmcia_driver lbs_driver = {
.owner = THIS_MODULE,
}
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -229,18 +229,34 @@ static int lbs_add_mcast_addrs(struct cm
+@@ -235,18 +235,34 @@ static int lbs_add_mcast_addrs(struct cm
netif_addr_lock_bh(dev);
cnt = netdev_mc_count(dev);
netdev_for_each_mc_addr(ha, dev) {
}
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1860,7 +1860,11 @@ struct ieee80211_ops {
+@@ -1882,7 +1882,11 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -735,7 +735,12 @@ struct ieee80211_local {
+@@ -739,7 +739,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;
/* aggregated multicast list */
spin_unlock_bh(&local->filter_lock);
/* be a bit nasty */
-@@ -614,9 +618,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -615,9 +619,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN;
INIT_LIST_HEAD(&local->interfaces);
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -1010,6 +1010,7 @@ static int if_sdio_probe(struct sdio_fun
+@@ -1012,6 +1012,7 @@ static int if_sdio_probe(struct sdio_fun
if (ret)
goto disable;
/* For 1-bit transfers to the 8686 model, we need to enable the
* interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0
* bit to allow access to non-vendor registers. */
-@@ -1028,6 +1029,7 @@ static int if_sdio_probe(struct sdio_fun
+@@ -1030,6 +1031,7 @@ static int if_sdio_probe(struct sdio_fun
if (ret)
goto release_int;
}
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -1196,6 +1196,7 @@ static void if_sdio_remove(struct sdio_f
+@@ -1198,6 +1198,7 @@ static void if_sdio_remove(struct sdio_f
lbs_deb_leave(LBS_DEB_SDIO);
}
static int if_sdio_suspend(struct device *dev)
{
struct sdio_func *func = dev_to_sdio_func(dev);
-@@ -1250,15 +1251,18 @@ static const struct dev_pm_ops if_sdio_p
+@@ -1251,15 +1252,18 @@ static const struct dev_pm_ops if_sdio_p
.suspend = if_sdio_suspend,
.resume = if_sdio_resume,
};
ntype == NL80211_IFTYPE_P2P_CLIENT))
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -1404,7 +1404,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -1409,7 +1409,7 @@ static int nl80211_valid_4addr(struct cf
enum nl80211_iftype iftype)
{
if (!use_4addr) {
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
-@@ -3706,8 +3706,12 @@ static inline int l2cap_data_channel(str
+@@ -3700,8 +3700,12 @@ static inline int l2cap_data_channel(str
if (!sock_owned_by_user(sk)) {
l2cap_ertm_data_rcv(sk, skb);
} else {
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -1061,6 +1061,10 @@ static void __exit ieee80211_exit(void)
+@@ -1068,6 +1068,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();