if (unlikely(retval < 0)) {
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1360,7 +1360,7 @@ usbnet_probe (struct usb_interface *udev
+@@ -1359,7 +1359,7 @@ usbnet_probe (struct usb_interface *udev
net->features |= NETIF_F_HIGHDMA;
#endif
memcpy(found->pub.proberesp_ies,
res->pub.proberesp_ies, ielen);
found->pub.len_proberesp_ies = ielen;
-@@ -465,9 +470,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;
+@@ -468,9 +473,14 @@ cfg80211_bss_update(struct cfg80211_regi
+ (found->pub.information_elements ==
+ found->pub.beacon_ies);
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,28)
+ if (0) {
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -4045,7 +4045,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4149,7 +4149,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
-@@ -1069,7 +1069,9 @@ static struct usb_driver p54u_driver = {
+@@ -1075,7 +1075,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
-@@ -1073,7 +1073,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -1074,7 +1074,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/Makefile
+++ b/drivers/net/wireless/Makefile
-@@ -40,7 +40,7 @@ obj-$(CONFIG_ADM8211) += adm8211.o
+@@ -41,7 +41,7 @@ obj-$(CONFIG_ADM8211) += adm8211.o
obj-$(CONFIG_MWL8K) += mwl8k.o
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -3952,8 +3952,13 @@ redo:
+@@ -3948,8 +3948,13 @@ redo:
if (dev->dev->bus->bustype == SSB_BUSTYPE_SDIO) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -3993,9 +3998,17 @@ static int b43_wireless_core_start(struc
+@@ -3989,9 +3994,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;
-@@ -4724,6 +4737,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -4720,6 +4733,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
/* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -908,6 +908,10 @@ struct rt2x00_dev {
+@@ -914,6 +914,10 @@ struct rt2x00_dev {
* Tasklet for processing tx status reports (rt2800pci).
*/
struct tasklet_struct txstatus_tasklet;
/*
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
-@@ -153,10 +153,18 @@ int rt2x00pci_initialize(struct rt2x00_d
+@@ -160,10 +160,18 @@ int rt2x00pci_initialize(struct rt2x00_d
/*
* Register interrupt handler.
*/
if (status) {
ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n",
rt2x00dev->irq, status);
-@@ -180,7 +188,11 @@ void rt2x00pci_uninitialize(struct rt2x0
+@@ -187,7 +195,11 @@ void rt2x00pci_uninitialize(struct rt2x0
/*
* Free irq line.
*/
/*
* Free DMA
-@@ -195,6 +207,9 @@ EXPORT_SYMBOL_GPL(rt2x00pci_uninitialize
+@@ -202,6 +214,9 @@ EXPORT_SYMBOL_GPL(rt2x00pci_uninitialize
*/
static void rt2x00pci_free_reg(struct rt2x00_dev *rt2x00dev)
{
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -312,14 +312,36 @@ static int ath_pci_resume(struct device
+@@ -315,14 +315,36 @@ static int ath_pci_resume(struct device
return 0;
}
#define ATH9K_PM_OPS (&ath9k_pm_ops)
-@@ -337,7 +359,12 @@ static struct pci_driver ath_pci_driver
+@@ -340,7 +362,12 @@ static struct pci_driver ath_pci_driver
.id_table = ath_pci_id_table,
.probe = ath_pci_probe,
.remove = ath_pci_remove,
static int __init iwl_init(void)
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
-@@ -2081,14 +2081,42 @@ int iwl_pci_resume(struct device *device
+@@ -2098,14 +2098,42 @@ int iwl_pci_resume(struct device *device
}
EXPORT_SYMBOL(iwl_pci_resume);
#endif /* CONFIG_PM */
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
-@@ -631,7 +631,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr
+@@ -635,7 +635,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr
#ifdef CONFIG_PM
int iwl_pci_suspend(struct device *device);
int iwl_pci_resume(struct device *device);
{
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1273,13 +1273,17 @@ static const struct net_device_ops usbne
+@@ -1272,13 +1272,17 @@ static const struct net_device_ops usbne
// precondition: never called in_interrupt
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -2896,7 +2896,12 @@ void ieee80211_rx(struct ieee80211_hw *h
+@@ -2933,7 +2933,12 @@ void ieee80211_rx(struct ieee80211_hw *h
drop:
kfree_skb(skb);
}
tty_driver_flush_buffer(tty);
return 0;
-@@ -495,7 +500,11 @@ static int hci_uart_tty_ioctl(struct tty
+@@ -497,7 +502,11 @@ static int hci_uart_tty_ioctl(struct tty
return hu->hdev_flags;
default:
{
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
-@@ -29,7 +29,7 @@ obj-$(CONFIG_RTL8187) += rtl818x/
+@@ -30,7 +30,7 @@ obj-$(CONFIG_RTL8192CE) += rtlwifi/
obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
}
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -902,7 +902,11 @@ struct rt2x00_dev {
+@@ -908,7 +908,11 @@ struct rt2x00_dev {
/*
* FIFO for storing tx status reports between isr and tasklet.
*/
* Tasklet for processing tx status reports (rt2800pci).
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -827,10 +827,16 @@ static int rt2x00lib_probe_hw(struct rt2
+@@ -822,10 +822,16 @@ static int rt2x00lib_probe_hw(struct rt2
* queues gets reported before we've got a chance to handle
* them) 24*4=384 tx status reports need to be cached.
*/
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1638,6 +1638,10 @@ static void ieee80211_xmit(struct ieee80
+@@ -1642,6 +1642,10 @@ static void ieee80211_xmit(struct ieee80
return;
}
ieee80211_set_qos_hdr(local, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2125,7 +2129,14 @@ void ieee80211_tx_pending(unsigned long
+@@ -2129,7 +2133,14 @@ void ieee80211_tx_pending(unsigned long
if (skb_queue_empty(&local->pending[i]))
list_for_each_entry_rcu(sdata, &local->interfaces, list)
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
-@@ -784,7 +784,7 @@ int cfg80211_change_iface(struct cfg8021
+@@ -785,7 +785,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
-@@ -1282,7 +1282,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -1354,7 +1354,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
-@@ -758,7 +758,11 @@ int ieee80211_register_hw(struct ieee802
+@@ -765,7 +765,11 @@ int ieee80211_register_hw(struct ieee802
hw->queues = IEEE80211_MAX_QUEUES;
local->workqueue =
if (!local->workqueue) {
result = -ENOMEM;
goto fail_workqueue;
-@@ -972,6 +976,10 @@ static void __exit ieee80211_exit(void)
+@@ -979,6 +983,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();