--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -6118,7 +6118,7 @@ static struct net_device *ipw2100_alloc_
+@@ -6112,7 +6112,7 @@ static struct net_device *ipw2100_alloc_
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;
priv->wireless_data.libipw = priv->ieee;
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
-@@ -11692,7 +11692,7 @@ static int ipw_prom_alloc(struct ipw_pri
+@@ -11669,7 +11669,7 @@ 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);
-@@ -11831,7 +11831,7 @@ static int __devinit ipw_pci_probe(struc
+@@ -11808,7 +11808,7 @@ static int __devinit ipw_pci_probe(struc
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;
net_dev->wireless_handlers = &ipw_wx_handler_def;
--- a/drivers/net/wireless/iwmc3200wifi/netdev.c
+++ b/drivers/net/wireless/iwmc3200wifi/netdev.c
-@@ -129,7 +129,7 @@ void *iwm_if_alloc(int sizeof_bus, struc
+@@ -130,7 +130,7 @@ void *iwm_if_alloc(int sizeof_bus, struc
goto out_priv;
}
#define LBS_DEB_LEAVE 0x00000002
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -1103,7 +1103,7 @@ static const struct net_device_ops hwsim
+@@ -1104,7 +1104,7 @@ static const struct net_device_ops hwsim
static void hwsim_mon_setup(struct net_device *dev)
{
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -4201,7 +4201,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4203,7 +4203,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
iwlagn-$(CONFIG_IWL5000) += iwl-6000.o
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -3964,7 +3964,7 @@ static int iwl_pci_probe(struct pci_dev
+@@ -4080,7 +4080,7 @@ static int iwl_pci_probe(struct pci_dev
#ifdef CONFIG_IWL5000
iwlagn_hw_ops.hw_scan = NULL;
#endif
iwl4965_hw_ops.hw_scan = NULL;
#endif
}
-@@ -4338,10 +4338,10 @@ static void __devexit iwl_pci_remove(str
+@@ -4461,10 +4461,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/ath/ath5k/pci.c
+++ b/drivers/net/wireless/ath/ath5k/pci.c
-@@ -286,6 +286,9 @@ static int ath5k_pci_resume(struct devic
+@@ -287,6 +287,9 @@ static int ath5k_pci_resume(struct devic
return 0;
}
static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume);
#define ATH5K_PM_OPS (&ath5k_pm_ops)
#else
-@@ -297,7 +300,12 @@ static struct pci_driver ath5k_pci_drive
+@@ -298,7 +301,12 @@ static struct pci_driver ath5k_pci_drive
.id_table = ath5k_pci_id_table,
.probe = ath5k_pci_probe,
.remove = __devexit_p(ath5k_pci_remove),
/*
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -326,14 +326,11 @@ static int ath_pci_resume(struct device
+@@ -316,14 +316,11 @@ static int ath_pci_resume(struct device
return 0;
}
#define ATH9K_PM_OPS (&ath9k_pm_ops)
-@@ -351,7 +348,12 @@ static struct pci_driver ath_pci_driver
+@@ -341,7 +338,12 @@ static struct pci_driver ath_pci_driver
.id_table = ath_pci_id_table,
.probe = ath_pci_probe,
.remove = ath_pci_remove,
int ath_pci_init(void)
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -4497,7 +4497,12 @@ static struct pci_driver iwl_driver = {
+@@ -4663,7 +4663,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
-@@ -2098,14 +2098,16 @@ int iwl_pci_resume(struct device *device
+@@ -2105,14 +2105,16 @@ 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
-@@ -634,7 +634,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr
+@@ -620,7 +620,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/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
-@@ -4270,7 +4270,12 @@ static struct pci_driver iwl3945_driver
+@@ -4271,7 +4271,12 @@ static struct pci_driver iwl3945_driver
.id_table = iwl3945_hw_card_ids,
.probe = iwl3945_pci_probe,
.remove = __devexit_p(iwl3945_pci_remove),
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -6121,7 +6121,11 @@ static struct net_device *ipw2100_alloc_
+@@ -6115,7 +6115,11 @@ static struct net_device *ipw2100_alloc_
netdev_attach_ops(dev, &ipw2100_netdev_ops);
dev->ethtool_ops = &ipw2100_ethtool_ops;
dev->wireless_handlers = &ipw2100_wx_handler_def;
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
-@@ -2916,7 +2916,12 @@ void ieee80211_rx(struct ieee80211_hw *h
+@@ -2952,7 +2952,12 @@ void ieee80211_rx(struct ieee80211_hw *h
drop:
kfree_skb(skb);
}
bt_sock_reclassify_lock(sock, proto);
module_put(bt_proto[proto]->owner);
}
-@@ -445,7 +453,11 @@ int bt_sock_ioctl(struct socket *sock, u
+@@ -452,7 +460,11 @@ int bt_sock_ioctl(struct socket *sock, u
if (sk->sk_state == BT_LISTEN)
return -EINVAL;
err = put_user(amount, (int __user *) arg);
--- a/net/bluetooth/cmtp/capi.c
+++ b/net/bluetooth/cmtp/capi.c
-@@ -383,7 +383,11 @@ static void cmtp_reset_ctr(struct capi_c
+@@ -384,7 +384,11 @@ static void cmtp_reset_ctr(struct capi_c
BT_DBG("ctrl %p", ctrl);
#include <asm/system.h>
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
-@@ -601,7 +601,11 @@ drop:
+@@ -605,7 +605,11 @@ drop:
goto done;
}
{
struct hci_ufilter uf = { .opcode = 0 };
struct sock *sk = sock->sk;
-@@ -756,8 +760,12 @@ static struct proto hci_sk_proto = {
+@@ -760,8 +764,12 @@ static struct proto hci_sk_proto = {
.obj_size = sizeof(struct hci_pinfo)
};
};
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
-@@ -313,6 +313,7 @@ static int hidp_send_report(struct hidp_
+@@ -316,6 +316,7 @@ static int hidp_send_report(struct hidp_
return hidp_queue_report(session, buf, rsize);
}
static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count,
unsigned char report_type)
{
-@@ -332,6 +333,16 @@ static int hidp_output_raw_report(struct
+@@ -335,6 +336,16 @@ static int hidp_output_raw_report(struct
return -ENOMEM;
return count;
}
static void hidp_idle_timeout(unsigned long arg)
{
-@@ -597,8 +608,14 @@ static int hidp_session(void *arg)
+@@ -600,8 +611,14 @@ static int hidp_session(void *arg)
}
if (session->hid) {
}
/* Wakeup user-space polling for socket errors */
-@@ -711,6 +728,70 @@ static void hidp_close(struct hid_device
+@@ -714,6 +731,70 @@ static void hidp_close(struct hid_device
{
}
static int hidp_parse(struct hid_device *hid)
{
struct hidp_session *session = hid->driver_data;
-@@ -811,6 +892,7 @@ fault:
+@@ -814,6 +895,7 @@ fault:
return err;
}
int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock, struct socket *intr_sock)
{
-@@ -829,6 +911,39 @@ int hidp_add_connection(struct hidp_conn
+@@ -832,6 +914,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);
-@@ -856,6 +971,7 @@ int hidp_add_connection(struct hidp_conn
+@@ -859,6 +974,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)
-@@ -867,6 +983,16 @@ int hidp_add_connection(struct hidp_conn
+@@ -870,6 +986,16 @@ int hidp_add_connection(struct hidp_conn
if (err < 0)
goto purge;
}
__hidp_link_session(session);
-@@ -898,6 +1024,7 @@ unlink:
+@@ -901,6 +1027,7 @@ unlink:
session->input = NULL;
}
if (session->hid) {
hid_destroy_device(session->hid);
session->hid = NULL;
-@@ -909,10 +1036,15 @@ unlink:
+@@ -912,10 +1039,15 @@ unlink:
purge:
skb_queue_purge(&session->ctrl_transmit);
skb_queue_purge(&session->intr_transmit);
input_free_device(session->input);
kfree(session);
return err;
-@@ -1002,6 +1134,7 @@ int hidp_get_conninfo(struct hidp_connin
+@@ -1005,6 +1137,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) },
{ }
-@@ -1011,6 +1144,7 @@ static struct hid_driver hidp_driver = {
+@@ -1014,6 +1147,7 @@ static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
static int __init hidp_init(void)
{
-@@ -1020,11 +1154,14 @@ static int __init hidp_init(void)
+@@ -1023,11 +1157,14 @@ static int __init hidp_init(void)
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
if (ret)
goto err_drv;
-@@ -1032,13 +1169,16 @@ static int __init hidp_init(void)
+@@ -1035,13 +1172,16 @@ static int __init hidp_init(void)
err_drv:
hid_unregister_driver(&hidp_driver);
err:
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
-@@ -957,8 +957,12 @@ static struct sock *l2cap_sock_alloc(str
+@@ -982,8 +982,12 @@ static struct sock *l2cap_sock_alloc(str
return sk;
}
{
struct sock *sk;
-@@ -970,7 +974,11 @@ static int l2cap_sock_create(struct net
+@@ -995,7 +999,11 @@ static int l2cap_sock_create(struct net
sock->type != SOCK_DGRAM && sock->type != SOCK_RAW)
return -ESOCKTNOSUPPORT;
return -EPERM;
sock->ops = &l2cap_sock_ops;
-@@ -2042,7 +2050,11 @@ static int l2cap_sock_setsockopt_old(str
+@@ -2043,7 +2051,11 @@ static int l2cap_sock_setsockopt_old(str
return err;
}
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/kernel.h>
-@@ -521,6 +523,7 @@ static char *cmtp_procinfo(struct capi_c
+@@ -522,6 +524,7 @@ static char *cmtp_procinfo(struct capi_c
return "CAPI Message Transport Protocol";
}
static int cmtp_proc_show(struct seq_file *m, void *v)
{
struct capi_ctr *ctrl = m->private;
-@@ -553,6 +556,36 @@ static const struct file_operations cmtp
+@@ -554,6 +557,36 @@ static const struct file_operations cmtp
.release = single_release,
};
int cmtp_attach_device(struct cmtp_session *session)
{
unsigned char buf[4];
-@@ -591,7 +624,11 @@ int cmtp_attach_device(struct cmtp_sessi
+@@ -592,7 +625,11 @@ int cmtp_attach_device(struct cmtp_sessi
session->ctrl.send_message = cmtp_send_message;
session->ctrl.procinfo = cmtp_procinfo;
}
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
-@@ -331,20 +331,42 @@ ath5k_bss_info_changed(struct ieee80211_
+@@ -340,20 +340,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));
-@@ -353,6 +375,9 @@ ath5k_prepare_multicast(struct ieee80211
+@@ -362,6 +384,9 @@ ath5k_prepare_multicast(struct ieee80211
* neet to inform below to not reset the mcast */
/* ath5k_hw_set_mcast_filterindex(ah,
* ha->addr[5]); */
return ((u64)(mfilt[1]) << 32) | mfilt[0];
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
-@@ -840,17 +840,35 @@ out:
+@@ -847,17 +847,35 @@ out:
return err;
}
}
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
-@@ -2005,15 +2005,21 @@ struct mwl8k_cmd_mac_multicast_adr {
+@@ -2152,15 +2152,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;
-@@ -2034,13 +2040,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
+@@ -2181,13 +2187,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
if (allmulti) {
cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST);
} else if (mc_count) {
}
}
-@@ -3699,7 +3719,11 @@ mwl8k_bss_info_changed(struct ieee80211_
+@@ -4116,7 +4136,11 @@ mwl8k_bss_info_changed(struct ieee80211_
}
static u64 mwl8k_prepare_multicast(struct ieee80211_hw *hw,
{
struct mwl8k_cmd_pkt *cmd;
-@@ -3710,7 +3734,11 @@ static u64 mwl8k_prepare_multicast(struc
+@@ -4127,7 +4151,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;
}
-@@ -3832,7 +3860,11 @@ static void mwl8k_configure_filter(struc
+@@ -4249,7 +4277,11 @@ static void mwl8k_configure_filter(struc
*/
if (*total_flags & FIF_ALLMULTI) {
kfree(cmd);
static void rtl8187_configure_filter(struct ieee80211_hw *dev,
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
-@@ -1501,11 +1501,20 @@ struct wl1271_filter_params {
+@@ -1573,11 +1573,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))
-@@ -1518,16 +1527,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -1590,16 +1599,40 @@ static u64 wl1271_op_prepare_multicast(s
}
/* update multicast filtering parameters */
}
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1770,7 +1770,11 @@ struct ieee80211_ops {
+@@ -1802,7 +1802,11 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
}
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -75,7 +75,11 @@ void ieee80211_configure_filter(struct i
+@@ -77,7 +77,11 @@ void ieee80211_configure_filter(struct i
spin_lock_bh(&local->filter_lock);
changed_flags = local->filter_flags ^ new_flags;
spin_unlock_bh(&local->filter_lock);
/* be a bit nasty */
-@@ -559,9 +563,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -562,9 +566,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN;
INIT_LIST_HEAD(&local->interfaces);
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
-@@ -785,7 +785,7 @@ int cfg80211_change_iface(struct cfg8021
+@@ -796,7 +796,7 @@ int cfg80211_change_iface(struct cfg8021
return -EOPNOTSUPP;
/* if it's part of a bridge, reject changing type to station/ibss */
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
-@@ -4418,8 +4418,12 @@ static inline int l2cap_data_channel(str
+@@ -4449,8 +4449,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
-@@ -773,7 +773,11 @@ int ieee80211_register_hw(struct ieee802
+@@ -787,7 +787,11 @@ int ieee80211_register_hw(struct ieee802
hw->queues = IEEE80211_MAX_QUEUES;
local->workqueue =
if (!local->workqueue) {
result = -ENOMEM;
goto fail_workqueue;
-@@ -988,6 +992,10 @@ static void __exit ieee80211_exit(void)
+@@ -1002,6 +1006,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();
-diff --git a/drivers/net/wireless/ath/main.c b/drivers/net/wireless/ath/main.c
-index c325202..e3e60d4 100644
--- a/drivers/net/wireless/ath/main.c
+++ b/drivers/net/wireless/ath/main.c
@@ -60,16 +60,23 @@ EXPORT_SYMBOL(ath_rxbuf_alloc);