if (unlikely(retval < 0)) {
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1359,7 +1359,7 @@ usbnet_probe (struct usb_interface *udev
+@@ -1361,7 +1361,7 @@ 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
-@@ -3437,7 +3437,7 @@ static int rndis_wlan_bind(struct usbnet
+@@ -3440,7 +3440,7 @@ 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
-@@ -691,7 +691,12 @@ static const struct net_device_ops ieee8
+@@ -698,7 +698,12 @@ static const struct net_device_ops ieee8
static void ieee80211_if_setup(struct net_device *dev)
{
ether_setup(dev);
dev->destructor = free_netdev;
}
-@@ -838,7 +843,7 @@ static void ieee80211_setup_sdata(struct
+@@ -845,7 +850,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);
-@@ -877,7 +882,7 @@ static void ieee80211_setup_sdata(struct
+@@ -884,7 +889,7 @@ 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;
-@@ -1128,6 +1133,8 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1135,6 +1140,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 */
-@@ -1136,6 +1143,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1143,6 +1150,7 @@ int ieee80211_if_add(struct ieee80211_lo
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
wdev->netdev = ndev;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -831,7 +831,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -834,7 +834,7 @@ struct lbs_private *lbs_add_card(void *c
wdev->netdev = dev;
priv->dev = dev;
#define LBS_DEB_LEAVE 0x00000002
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -1104,7 +1104,7 @@ static const struct net_device_ops hwsim
+@@ -1103,7 +1103,7 @@ static const struct net_device_ops hwsim
static void hwsim_mon_setup(struct net_device *dev)
{
atl1e_set_ethtool_ops(netdev);
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
-@@ -2599,7 +2599,7 @@ static int atl1c_init_netdev(struct net_
+@@ -2600,7 +2600,7 @@ static int atl1c_init_netdev(struct net_
pci_set_drvdata(pdev, netdev);
netdev->irq = pdev->irq;
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
-@@ -2988,7 +2988,7 @@ static int __devinit atl1_probe(struct p
+@@ -2971,7 +2971,7 @@ static int __devinit atl1_probe(struct p
adapter->mii.phy_id_mask = 0x1f;
adapter->mii.reg_num_mask = 0x1f;
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
-@@ -432,9 +432,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -439,9 +439,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;
-@@ -468,9 +473,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -475,9 +480,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
-@@ -4203,7 +4203,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4221,7 +4221,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
if (sysfs_create_link(&dev->dev.kobj, &rdev->wiphy.dev.kobj,
"phy80211")) {
-@@ -862,6 +868,7 @@ static struct notifier_block cfg80211_ne
+@@ -868,6 +874,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;
-@@ -879,14 +886,17 @@ static void __net_exit cfg80211_pernet_e
+@@ -885,14 +892,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)
-@@ -921,8 +931,10 @@ out_fail_nl80211:
+@@ -927,8 +937,10 @@ out_fail_nl80211:
out_fail_notifier:
wiphy_sysfs_exit();
out_fail_sysfs:
return err;
}
subsys_initcall(cfg80211_init);
-@@ -934,7 +946,9 @@ static void __exit cfg80211_exit(void)
+@@ -940,7 +952,9 @@ static void __exit cfg80211_exit(void)
unregister_netdevice_notifier(&cfg80211_netdev_notifier);
wiphy_sysfs_exit();
regulatory_exit();
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
-@@ -1075,7 +1075,9 @@ static struct usb_driver p54u_driver = {
+@@ -1076,7 +1076,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
-@@ -1106,7 +1106,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -1167,7 +1167,9 @@ static struct usb_driver ath9k_hif_usb_d
.reset_resume = ath9k_hif_usb_resume,
#endif
.id_table = ath9k_hif_usb_ids,
* reporting the number of tids has AGG on. 0 means
--- a/drivers/net/wireless/iwlegacy/iwl4965-base.c
+++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c
-@@ -3563,10 +3563,10 @@ void iwl4965_txq_set_sched(struct iwl_pr
+@@ -3562,10 +3562,10 @@ void iwl4965_txq_set_sched(struct iwl_pr
/* Hardware specific file defines the PCI IDs table for that hardware module */
static DEFINE_PCI_DEVICE_TABLE(iwl4965_hw_card_ids) = {
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -3954,8 +3954,13 @@ redo:
+@@ -3952,8 +3952,13 @@ redo:
if (dev->dev->bus->bustype == SSB_BUSTYPE_SDIO) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -3995,9 +4000,17 @@ static int b43_wireless_core_start(struc
+@@ -3993,9 +3998,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;
-@@ -4726,6 +4739,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -4724,6 +4737,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
int ath_pci_init(void)
--- a/drivers/net/wireless/iwlegacy/iwl-core.c
+++ b/drivers/net/wireless/iwlegacy/iwl-core.c
-@@ -2032,15 +2032,17 @@ int iwl_legacy_pci_resume(struct device
+@@ -2038,15 +2038,17 @@ int iwl_legacy_pci_resume(struct device
}
EXPORT_SYMBOL(iwl_legacy_pci_resume);
--- a/drivers/net/wireless/iwlegacy/iwl-core.h
+++ b/drivers/net/wireless/iwlegacy/iwl-core.h
-@@ -506,7 +506,12 @@ __le32 iwl_legacy_add_beacon_time(struct
+@@ -508,7 +508,12 @@ __le32 iwl_legacy_add_beacon_time(struct
#ifdef CONFIG_PM
int iwl_legacy_pci_suspend(struct device *device);
int iwl_legacy_pci_resume(struct device *device);
--- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
+++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-@@ -4237,7 +4237,12 @@ static struct pci_driver iwl3945_driver
+@@ -4236,7 +4236,12 @@ static struct pci_driver iwl3945_driver
.id_table = iwl3945_hw_card_ids,
.probe = iwl3945_pci_probe,
.remove = __devexit_p(iwl3945_pci_remove),
static int __init iwl3945_init(void)
--- a/drivers/net/wireless/iwlegacy/iwl4965-base.c
+++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c
-@@ -3577,7 +3577,12 @@ static struct pci_driver iwl4965_driver
+@@ -3576,7 +3576,12 @@ static struct pci_driver iwl4965_driver
.id_table = iwl4965_hw_card_ids,
.probe = iwl4965_pci_probe,
.remove = __devexit_p(iwl4965_pci_remove),
static int __init iwl4965_init(void)
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -4697,7 +4697,12 @@ static struct pci_driver iwl_driver = {
+@@ -4546,7 +4546,12 @@ static struct pci_driver iwl_driver = {
.id_table = iwl_hw_card_ids,
.probe = iwl_pci_probe,
.remove = __devexit_p(iwl_pci_remove),
static int __init iwl_init(void)
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
-@@ -2070,13 +2070,9 @@ int iwl_pci_resume(struct device *device
+@@ -2007,13 +2007,9 @@ int iwl_pci_resume(struct device *device
return 0;
}
#endif /* CONFIG_PM */
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
-@@ -621,7 +621,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr
+@@ -609,7 +609,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);
unsigned long state,
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
-@@ -537,9 +537,11 @@ static struct device *bnep_get_device(st
+@@ -546,9 +546,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
-@@ -1272,13 +1272,17 @@ static const struct net_device_ops usbne
+@@ -1274,13 +1274,17 @@ static const struct net_device_ops usbne
// precondition: never called in_interrupt
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -2952,7 +2952,12 @@ void ieee80211_rx(struct ieee80211_hw *h
+@@ -2971,7 +2971,12 @@ void ieee80211_rx(struct ieee80211_hw *h
drop:
kfree_skb(skb);
}
};
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
-@@ -397,6 +397,7 @@ err_eio:
+@@ -399,6 +399,7 @@ err_eio:
return -EIO;
}
static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count,
unsigned char report_type)
{
-@@ -456,6 +457,16 @@ err:
+@@ -458,6 +459,16 @@ err:
mutex_unlock(&session->report_mutex);
return ret;
}
static void hidp_idle_timeout(unsigned long arg)
{
-@@ -752,8 +763,14 @@ static int hidp_session(void *arg)
+@@ -755,8 +766,14 @@ static int hidp_session(void *arg)
}
if (session->hid) {
}
/* Wakeup user-space polling for socket errors */
-@@ -866,6 +883,70 @@ static void hidp_close(struct hid_device
+@@ -869,6 +886,70 @@ static void hidp_close(struct hid_device
{
}
static int hidp_parse(struct hid_device *hid)
{
struct hidp_session *session = hid->driver_data;
-@@ -950,7 +1031,9 @@ static int hidp_setup_hid(struct hidp_se
+@@ -953,7 +1034,9 @@ static int hidp_setup_hid(struct hidp_se
hid->dev.parent = hidp_get_device(session);
hid->ll_driver = &hidp_hid_driver;
hid->hid_output_raw_report = hidp_output_raw_report;
return 0;
-@@ -961,6 +1044,7 @@ fault:
+@@ -964,6 +1047,7 @@ fault:
return err;
}
int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock, struct socket *intr_sock)
{
-@@ -979,6 +1063,39 @@ int hidp_add_connection(struct hidp_conn
+@@ -982,6 +1066,39 @@ int hidp_add_connection(struct hidp_conn
BT_DBG("rd_data %p rd_size %d", req->rd_data, req->rd_size);
down_write(&hidp_session_sem);
s = __hidp_get_session(&bt_sk(ctrl_sock->sk)->dst);
-@@ -1010,6 +1127,7 @@ int hidp_add_connection(struct hidp_conn
+@@ -1013,6 +1130,7 @@ int hidp_add_connection(struct hidp_conn
session->flags = req->flags & (1 << HIDP_BLUETOOTH_VENDOR_ID);
session->idle_to = req->idle_to;
if (req->rd_size > 0) {
err = hidp_setup_hid(session, req);
if (err && err != -ENODEV)
-@@ -1021,6 +1139,16 @@ int hidp_add_connection(struct hidp_conn
+@@ -1024,6 +1142,16 @@ int hidp_add_connection(struct hidp_conn
if (err < 0)
goto purge;
}
__hidp_link_session(session);
-@@ -1066,6 +1194,7 @@ unlink:
+@@ -1069,6 +1197,7 @@ unlink:
session->input = NULL;
}
if (session->hid) {
hid_destroy_device(session->hid);
session->hid = NULL;
-@@ -1077,10 +1206,15 @@ unlink:
+@@ -1080,10 +1209,15 @@ unlink:
purge:
skb_queue_purge(&session->ctrl_transmit);
skb_queue_purge(&session->intr_transmit);
input_free_device(session->input);
kfree(session);
return err;
-@@ -1170,6 +1304,7 @@ int hidp_get_conninfo(struct hidp_connin
+@@ -1173,6 +1307,7 @@ int hidp_get_conninfo(struct hidp_connin
return err;
}
static const struct hid_device_id hidp_table[] = {
{ HID_BLUETOOTH_DEVICE(HID_ANY_ID, HID_ANY_ID) },
{ }
-@@ -1179,6 +1314,7 @@ static struct hid_driver hidp_driver = {
+@@ -1182,6 +1317,7 @@ static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
static int __init hidp_init(void)
{
-@@ -1186,11 +1322,14 @@ static int __init hidp_init(void)
+@@ -1189,11 +1325,14 @@ static int __init hidp_init(void)
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
if (ret)
goto err_drv;
-@@ -1198,13 +1337,16 @@ static int __init hidp_init(void)
+@@ -1201,13 +1340,16 @@ static int __init hidp_init(void)
err_drv:
hid_unregister_driver(&hidp_driver);
err:
struct rfcomm_dlc *dlc = dev->dlc;
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
-@@ -428,8 +428,12 @@ static struct sock *sco_sock_alloc(struc
+@@ -429,8 +429,12 @@ static struct sock *sco_sock_alloc(struc
return sk;
}
{
struct sock *sk;
-@@ -645,7 +649,11 @@ static int sco_sock_sendmsg(struct kiocb
+@@ -646,7 +650,11 @@ static int sco_sock_sendmsg(struct kiocb
return err;
}
--- a/net/bluetooth/hidp/sock.c
+++ b/net/bluetooth/hidp/sock.c
-@@ -241,8 +241,12 @@ static struct proto hidp_proto = {
+@@ -242,8 +242,12 @@ static struct proto hidp_proto = {
.obj_size = sizeof(struct bt_sock)
};
{
struct sock *sk = sock->sk;
struct bt_security sec;
-@@ -1073,8 +1080,12 @@ struct sock *l2cap_sock_alloc(struct net
+@@ -1074,8 +1081,12 @@ struct sock *l2cap_sock_alloc(struct net
return sk;
}
{
struct sock *sk;
-@@ -1086,7 +1097,11 @@ static int l2cap_sock_create(struct net
+@@ -1087,7 +1098,11 @@ static int l2cap_sock_create(struct net
sock->type != SOCK_DGRAM && sock->type != SOCK_RAW)
return -ESOCKTNOSUPPORT;
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1222,6 +1222,7 @@ void ieee80211_if_remove(struct ieee8021
+@@ -1229,6 +1229,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;
-@@ -1238,6 +1239,22 @@ void ieee80211_remove_interfaces(struct
- mutex_unlock(&local->iflist_mtx);
+@@ -1246,6 +1247,22 @@ void ieee80211_remove_interfaces(struct
unregister_netdevice_many(&unreg_list);
+ list_del(&unreg_list);
}
+#else
+void ieee80211_remove_interfaces(struct ieee80211_local *local)
{
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
-@@ -30,7 +30,7 @@ obj-$(CONFIG_RTL8192CE) += rtlwifi/
+@@ -30,7 +30,7 @@ obj-$(CONFIG_RTLWIFI) += rtlwifi/
obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1647,6 +1647,10 @@ static void ieee80211_xmit(struct ieee80
+@@ -1598,6 +1598,10 @@ static void ieee80211_xmit(struct ieee80
return;
}
ieee80211_set_qos_hdr(local, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2139,7 +2143,14 @@ void ieee80211_tx_pending(unsigned long
+@@ -2090,7 +2094,14 @@ void ieee80211_tx_pending(unsigned long
if (skb_queue_empty(&local->pending[i]))
list_for_each_entry_rcu(sdata, &local->interfaces, list)
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
-@@ -409,7 +409,11 @@ static void atl1c_set_multi(struct net_d
+@@ -410,7 +410,11 @@ static void atl1c_set_multi(struct net_d
/* comoute mc addresses' hash value ,and put it into hash table */
netdev_for_each_mc_addr(ha, netdev) {
return mc_filter[0] | ((u64)(mc_filter[1]) << 32);
--- a/drivers/net/wireless/ath/ar9170/main.c
+++ b/drivers/net/wireless/ath/ar9170/main.c
-@@ -1607,17 +1607,35 @@ out:
+@@ -1606,17 +1606,35 @@ out:
return err;
}
}
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
-@@ -340,20 +340,42 @@ ath5k_bss_info_changed(struct ieee80211_
+@@ -322,20 +322,42 @@ ath5k_bss_info_changed(struct ieee80211_
static u64
ath5k_prepare_multicast(struct ieee80211_hw *hw,
pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
pos &= 0x3f;
mfilt[pos / 32] |= (1 << (pos % 32));
-@@ -362,6 +384,9 @@ ath5k_prepare_multicast(struct ieee80211
+@@ -344,6 +366,9 @@ ath5k_prepare_multicast(struct ieee80211
* neet to inform below to not reset the mcast */
/* ath5k_hw_set_mcast_filterindex(ah,
* ha->addr[5]); */
}
--- a/drivers/net/wireless/libertas_tf/main.c
+++ b/drivers/net/wireless/libertas_tf/main.c
-@@ -418,20 +418,36 @@ static int lbtf_op_config(struct ieee802
+@@ -417,20 +417,36 @@ static int lbtf_op_config(struct ieee802
}
static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw,
}
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
-@@ -2152,15 +2152,21 @@ struct mwl8k_cmd_mac_multicast_adr {
+@@ -2165,15 +2165,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;
-@@ -2181,13 +2187,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
+@@ -2194,13 +2200,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
if (allmulti) {
cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST);
} else if (mc_count) {
}
}
-@@ -4116,7 +4136,11 @@ mwl8k_bss_info_changed(struct ieee80211_
+@@ -4130,7 +4150,11 @@ mwl8k_bss_info_changed(struct ieee80211_
}
static u64 mwl8k_prepare_multicast(struct ieee80211_hw *hw,
{
struct mwl8k_cmd_pkt *cmd;
-@@ -4127,7 +4151,11 @@ static u64 mwl8k_prepare_multicast(struc
+@@ -4141,7 +4165,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;
}
-@@ -4249,7 +4277,11 @@ static void mwl8k_configure_filter(struc
+@@ -4263,7 +4291,11 @@ static void mwl8k_configure_filter(struc
*/
if (*total_flags & FIF_ALLMULTI) {
kfree(cmd);
--- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
-@@ -815,10 +815,19 @@ static void rtl8180_bss_info_changed(str
+@@ -811,10 +811,19 @@ static void rtl8180_bss_info_changed(str
}
}
static void rtl8180_configure_filter(struct ieee80211_hw *dev,
--- a/drivers/net/wireless/rtl818x/rtl8187/dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c
-@@ -1194,9 +1194,17 @@ static void rtl8187_bss_info_changed(str
+@@ -1204,9 +1204,17 @@ static void rtl8187_bss_info_changed(str
}
static u64 rtl8187_prepare_multicast(struct ieee80211_hw *dev,
static void rtl8187_configure_filter(struct ieee80211_hw *dev,
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
-@@ -1573,11 +1573,20 @@ struct wl1271_filter_params {
+@@ -1673,11 +1673,20 @@ struct wl1271_filter_params {
u8 mc_list[ACX_MC_ADDRESS_GROUP_MAX][ETH_ALEN];
};
struct wl1271 *wl = hw->priv;
if (unlikely(wl->state == WL1271_STATE_OFF))
-@@ -1590,16 +1599,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -1690,16 +1699,40 @@ static u64 wl1271_op_prepare_multicast(s
}
/* update multicast filtering parameters */
return (u64)(unsigned long)fp;
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
-@@ -949,17 +949,34 @@ static void set_rx_filter_handler(struct
- }
+@@ -1126,17 +1126,34 @@ static void zd_process_intr(struct work_
+
static u64 zd_op_prepare_multicast(struct ieee80211_hw *hw,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
return hash.low | ((u64)hash.high << 32);
--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
-@@ -726,7 +726,11 @@ static void _dhd_set_multicast_list(dhd_
+@@ -718,7 +718,11 @@ static void _dhd_set_multicast_list(dhd_
netdev_for_each_mc_addr(ha, dev) {
if (!cnt)
break;
}
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1802,7 +1802,11 @@ struct ieee80211_ops {
+@@ -1826,7 +1826,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
-@@ -736,7 +736,12 @@ struct ieee80211_local {
+@@ -734,7 +734,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;
/* aggregated multicast list */
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -435,8 +435,13 @@ static void ieee80211_do_stop(struct iee
+@@ -436,8 +436,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);
-@@ -595,7 +600,12 @@ static void ieee80211_set_multicast_list
+@@ -602,7 +607,12 @@ static void ieee80211_set_multicast_list
sdata->flags ^= IEEE80211_SDATA_PROMISC;
}
spin_lock_bh(&local->filter_lock);
spin_unlock_bh(&local->filter_lock);
/* be a bit nasty */
-@@ -562,9 +566,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -619,9 +623,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN;
INIT_LIST_HEAD(&local->interfaces);
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
-@@ -3368,8 +3368,12 @@ static inline int l2cap_data_channel(str
+@@ -3569,8 +3569,12 @@ static inline int l2cap_data_channel(str
if (!sock_owned_by_user(sk)) {
l2cap_ertm_data_rcv(sk, skb);
} else {
--- a/drivers/staging/ath6kl/os/linux/ar6000_drv.c
+++ b/drivers/staging/ath6kl/os/linux/ar6000_drv.c
-@@ -334,12 +334,20 @@ static void ar6000_refill_amsdu_rxbufs(A
- static void ar6000_cleanup_amsdu_rxbufs(AR_SOFTC_T *ar);
+@@ -334,12 +334,20 @@ static void ar6000_refill_amsdu_rxbufs(s
+ static void ar6000_cleanup_amsdu_rxbufs(struct ar6_softc *ar);
static ssize_t
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,34))
struct bin_attribute *bin_attr,
char *buf, loff_t pos, size_t count);
-@@ -799,7 +807,11 @@ static struct bin_attribute bmi_attr = {
+@@ -797,7 +805,11 @@ static struct bin_attribute bmi_attr = {
};
static ssize_t
struct bin_attribute *bin_attr,
char *buf, loff_t pos, size_t count)
{
-@@ -826,7 +838,11 @@ ar6000_sysfs_bmi_read(struct file *fp, s
+@@ -824,7 +836,11 @@ ar6000_sysfs_bmi_read(struct file *fp, s
}
static ssize_t
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -1002,6 +1002,10 @@ static void __exit ieee80211_exit(void)
+@@ -1071,6 +1071,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();
obj-$(CONFIG_COMPAT_ZD1211RW) += zd1211rw/
@@ -26,13 +16,8 @@ obj-$(CONFIG_RTL8180) += rtl818x/
obj-$(CONFIG_RTL8187) += rtl818x/
- obj-$(CONFIG_RTL8192CE) += rtlwifi/
+ obj-$(CONFIG_RTLWIFI) += rtlwifi/
-# 16-bit wireless PCMCIA client drivers
-obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o