retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -699,7 +699,12 @@ static void ieee80211_if_setup(struct ne
+@@ -697,7 +697,12 @@ static void ieee80211_if_setup(struct ne
{
ether_setup(dev);
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
dev->destructor = free_netdev;
}
-@@ -846,7 +851,7 @@ static void ieee80211_setup_sdata(struct
+@@ -844,7 +849,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);
-@@ -885,7 +890,7 @@ static void ieee80211_setup_sdata(struct
+@@ -883,7 +888,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;
-@@ -1136,6 +1141,8 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1134,6 +1139,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 */
-@@ -1144,6 +1151,7 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1142,6 +1149,7 @@ int ieee80211_if_add(struct ieee80211_lo
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
-@@ -507,9 +507,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -534,9 +534,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;
-@@ -543,9 +548,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -570,9 +575,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
-@@ -4905,7 +4905,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4904,7 +4904,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/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -4175,8 +4175,13 @@ redo:
+@@ -4183,8 +4183,13 @@ redo:
if (b43_bus_host_is_sdio(dev->dev)) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -4216,9 +4221,17 @@ static int b43_wireless_core_start(struc
+@@ -4224,9 +4229,17 @@ static int b43_wireless_core_start(struc
goto out;
}
} else {
if (err) {
b43err(dev->wl, "Cannot request IRQ-%d\n",
dev->dev->irq);
-@@ -5007,6 +5020,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -5015,6 +5028,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
b43_release_firmware(dev);
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
-@@ -805,6 +805,9 @@ struct b43_wldev {
+@@ -843,6 +843,9 @@ struct b43_wldev {
unsigned int tx_count;
unsigned int rx_count;
#endif
return 0;
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
-@@ -630,6 +630,10 @@ struct wl1271 {
+@@ -631,6 +631,10 @@ struct wl1271 {
/* AP-mode - number of currently connected stations */
int active_sta_count;
static int __init iwl4965_init(void)
--- a/drivers/net/wireless/iwlwifi/iwl-pci.c
+++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
-@@ -537,6 +537,9 @@ static int iwl_pci_resume(struct device
+@@ -535,6 +535,9 @@ static int iwl_pci_resume(struct device
static SIMPLE_DEV_PM_OPS(iwl_dev_pm_ops, iwl_pci_suspend, iwl_pci_resume);
#define IWL_PM_OPS (&iwl_dev_pm_ops)
#else
-@@ -550,7 +553,12 @@ static struct pci_driver iwl_pci_driver
+@@ -548,7 +551,12 @@ static struct pci_driver iwl_pci_driver
.id_table = iwl_hw_card_ids,
.probe = iwl_pci_probe,
.remove = __devexit_p(iwl_pci_remove),
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
-@@ -69,7 +69,11 @@ static struct attribute_group bt_link_gr
+@@ -71,7 +71,11 @@ static struct attribute_group bt_link_gr
.attrs = bt_link_attrs,
};
&bt_link_group,
NULL
};
-@@ -127,7 +131,11 @@ static void del_conn(struct work_struct
+@@ -129,7 +133,11 @@ static void del_conn(struct work_struct
dev = device_find_child(&conn->dev, NULL, __match_tty);
if (!dev)
break;
put_device(dev);
}
-@@ -377,7 +385,11 @@ static struct attribute_group bt_host_gr
+@@ -379,7 +387,11 @@ static struct attribute_group bt_host_gr
.attrs = bt_host_attrs,
};
static int hidp_parse(struct hid_device *hid)
{
struct hidp_session *session = hid->driver_data;
-@@ -949,7 +1030,9 @@ static int hidp_setup_hid(struct hidp_se
+@@ -952,7 +1033,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;
-@@ -960,6 +1043,7 @@ fault:
+@@ -963,6 +1046,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);
-@@ -1012,6 +1129,7 @@ int hidp_add_connection(struct hidp_conn
+@@ -1015,6 +1132,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)
-@@ -1023,6 +1141,16 @@ int hidp_add_connection(struct hidp_conn
+@@ -1026,6 +1144,16 @@ int hidp_add_connection(struct hidp_conn
if (err < 0)
goto purge;
}
__hidp_link_session(session);
-@@ -1081,6 +1209,7 @@ unlink:
+@@ -1084,6 +1212,7 @@ unlink:
session->input = NULL;
}
if (session->hid) {
hid_destroy_device(session->hid);
session->hid = NULL;
-@@ -1092,10 +1221,15 @@ unlink:
+@@ -1095,10 +1224,15 @@ unlink:
purge:
skb_queue_purge(&session->ctrl_transmit);
skb_queue_purge(&session->intr_transmit);
kfree(session);
return err;
}
-@@ -1179,6 +1313,7 @@ int hidp_get_conninfo(struct hidp_connin
+@@ -1182,6 +1316,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) },
{ }
-@@ -1188,6 +1323,7 @@ static struct hid_driver hidp_driver = {
+@@ -1191,6 +1326,7 @@ static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
static int __init hidp_init(void)
{
-@@ -1195,11 +1331,14 @@ static int __init hidp_init(void)
+@@ -1198,11 +1334,14 @@ static int __init hidp_init(void)
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
if (ret)
goto err_drv;
-@@ -1207,13 +1346,16 @@ static int __init hidp_init(void)
+@@ -1210,13 +1349,16 @@ static int __init hidp_init(void)
err_drv:
hid_unregister_driver(&hidp_driver);
err:
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
-@@ -1233,6 +1233,7 @@ void ieee80211_if_remove(struct ieee8021
+@@ -1231,6 +1231,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;
-@@ -1253,6 +1254,22 @@ void ieee80211_remove_interfaces(struct
+@@ -1251,6 +1252,22 @@ void ieee80211_remove_interfaces(struct
unregister_netdevice_many(&unreg_list);
list_del(&unreg_list);
}
}
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
-@@ -1318,19 +1318,37 @@ static void adm8211_bss_info_changed(str
+@@ -1319,19 +1319,37 @@ static void adm8211_bss_info_changed(str
}
static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw,
--- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
-@@ -812,10 +812,19 @@ static void rtl8180_bss_info_changed(str
+@@ -813,10 +813,19 @@ static void rtl8180_bss_info_changed(str
}
}
static void rtl8187_configure_filter(struct ieee80211_hw *dev,
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
-@@ -2431,11 +2431,20 @@ struct wl1271_filter_params {
+@@ -2467,11 +2467,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))
-@@ -2448,16 +2457,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -2484,16 +2493,40 @@ static u64 wl1271_op_prepare_multicast(s
}
/* update multicast filtering parameters */
}
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1956,7 +1956,11 @@ struct ieee80211_ops {
+@@ -1960,7 +1960,11 @@ struct ieee80211_ops {
enum ieee80211_tx_sync_type type);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -775,7 +775,12 @@ struct ieee80211_local {
+@@ -776,7 +776,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;
/* aggregated multicast list */
spin_unlock_bh(&local->filter_lock);
netif_addr_unlock_bh(sdata->dev);
-@@ -602,7 +607,12 @@ static void ieee80211_set_multicast_list
+@@ -600,7 +605,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
-@@ -801,7 +801,7 @@ int cfg80211_change_iface(struct cfg8021
+@@ -805,7 +805,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
-@@ -1539,7 +1539,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -1546,7 +1546,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
-@@ -3742,8 +3742,12 @@ static inline int l2cap_data_channel(str
+@@ -3744,8 +3744,12 @@ static inline int l2cap_data_channel(str
if (!sock_owned_by_user(sk)) {
l2cap_ertm_data_rcv(sk, skb);
} else {
case IWL_LED_DEFAULT:
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
-@@ -185,7 +185,9 @@ void iwl_leds_init(struct iwl_priv *priv
+@@ -184,7 +184,9 @@ void iwl_leds_init(struct iwl_priv *priv
wiphy_name(priv->hw->wiphy));
priv->led.brightness_set = iwl_led_brightness_set;
priv->led.blink_set = iwl_led_blink_set;
#endif
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
-@@ -164,6 +164,7 @@ static void iwl_led_brightness_set(struc
+@@ -163,6 +163,7 @@ static void iwl_led_brightness_set(struc
iwl_led_cmd(priv, on, 0);
}
static int iwl_led_blink_set(struct led_classdev *led_cdev,
unsigned long *delay_on,
unsigned long *delay_off)
-@@ -172,6 +173,7 @@ static int iwl_led_blink_set(struct led_
+@@ -171,6 +172,7 @@ static int iwl_led_blink_set(struct led_
return iwl_led_cmd(priv, *delay_on, *delay_off);
}
void iwl_leds_init(struct iwl_priv *priv)
{
-@@ -184,7 +186,9 @@ void iwl_leds_init(struct iwl_priv *priv
+@@ -183,7 +185,9 @@ void iwl_leds_init(struct iwl_priv *priv
priv->led.name = kasprintf(GFP_KERNEL, "%s-led",
wiphy_name(priv->hw->wiphy));
priv->led.brightness_set = iwl_led_brightness_set;
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -3985,7 +3985,9 @@ static int nl80211_dump_scan(struct sk_b
+@@ -3995,7 +3995,9 @@ static int nl80211_dump_scan(struct sk_b
spin_lock_bh(&rdev->bss_lock);
cfg80211_bss_expire(rdev);