ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
+#endif
- ieee80211_assign_perm_addr(local, ndev, type);
- memcpy(ndev->dev_addr, ndev->perm_addr, ETH_ALEN);
+ ret = dev_alloc_name(ndev, ndev->name);
+ if (ret < 0)
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
-@@ -2164,7 +2164,7 @@ static int __devinit b44_init_one(struct
+@@ -2165,7 +2165,7 @@ static int __devinit b44_init_one(struct
bp->rx_pending = B44_DEF_RX_RING_PENDING;
bp->tx_pending = B44_DEF_TX_RING_PENDING;
wdev->netdev = ndev;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -826,7 +826,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -827,7 +827,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
-@@ -387,7 +387,7 @@ int lbs_add_mesh(struct lbs_private *pri
+@@ -388,7 +388,7 @@ int lbs_add_mesh(struct lbs_private *pri
mesh_dev->ml_priv = priv;
priv->mesh_dev = mesh_dev;
#define LBS_DEB_LEAVE 0x00000002
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -1200,7 +1200,7 @@ static const struct net_device_ops hwsim
+@@ -1228,7 +1228,7 @@ static const struct net_device_ops hwsim
static void hwsim_mon_setup(struct net_device *dev)
{
dev->tx_queue_len = 0;
--- a/drivers/net/wireless/mwifiex/main.c
+++ b/drivers/net/wireless/mwifiex/main.c
-@@ -668,7 +668,7 @@ static const struct net_device_ops mwifi
+@@ -652,7 +652,7 @@ static const struct net_device_ops mwifi
static void
mwifiex_init_priv_params(struct mwifiex_private *priv, struct net_device *dev)
{
atl1e_set_ethtool_ops(netdev);
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
-@@ -2598,7 +2598,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;
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
-@@ -502,9 +502,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -507,9 +507,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;
-@@ -538,9 +543,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -543,9 +548,14 @@ cfg80211_bss_update(struct cfg80211_regi
(found->pub.information_elements ==
found->pub.beacon_ies);
--- a/net/rfkill/Makefile
+++ b/net/rfkill/Makefile
-@@ -2,7 +2,7 @@
+@@ -2,8 +2,8 @@
# Makefile for the RF switch subsystem.
#
+rfkill_backport-$(CONFIG_RFKILL_BACKPORT_INPUT) += input.o
+obj-$(CONFIG_RFKILL_BACKPORT) += rfkill_backport.o
obj-$(CONFIG_RFKILL_REGULATOR) += rfkill-regulator.o
+ obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o
--- a/net/rfkill/input.c
+++ b/net/rfkill/input.c
@@ -232,7 +232,7 @@ static int rfkill_connect(struct input_h
error = input_register_handle(handle);
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
-@@ -658,7 +658,7 @@ static int rfkill_resume(struct device *
+@@ -805,7 +805,7 @@ static int rfkill_resume(struct device *
}
static struct class rfkill_class = {
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -4593,7 +4593,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4657,7 +4657,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
#include <linux/vmalloc.h>
--- a/drivers/net/wireless/wl1251/spi.c
+++ b/drivers/net/wireless/wl1251/spi.c
-@@ -23,6 +23,9 @@
+@@ -24,6 +24,9 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/crc7.h>
iwl4965-objs += iwl-4965-lib.o iwl-4965-rx.o iwl-4965-calib.o
--- a/drivers/net/wireless/iwlegacy/iwl-dev.h
+++ b/drivers/net/wireless/iwlegacy/iwl-dev.h
-@@ -1211,7 +1211,7 @@ struct iwl_priv {
+@@ -1163,7 +1163,7 @@ struct iwl_priv {
} _3945;
#endif
-#if defined(CONFIG_IWL4965) || defined(CONFIG_IWL4965_MODULE)
+#if defined(CONFIG_COMPAT_IWL4965) || defined(CONFIG_COMPAT_IWL4965_MODULE)
struct {
- /*
- * reporting the number of tids has AGG on. 0 means
+ struct iwl_rx_phy_res last_phy_res;
+ bool last_phy_res_valid;
--- 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
+@@ -3212,10 +3212,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) = {
zd_rf_al2230.o zd_rf_rf2959.o \
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
-@@ -213,7 +213,7 @@ extern void bt_sysfs_cleanup(void);
+@@ -214,7 +214,7 @@ extern void bt_sysfs_cleanup(void);
extern struct dentry *bt_debugfs;
int l2cap_init(void);
void l2cap_exit(void);
#else
-@@ -227,7 +227,7 @@ static inline void l2cap_exit(void)
+@@ -228,7 +228,7 @@ static inline void l2cap_exit(void)
}
#endif
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
-@@ -2878,6 +2878,9 @@ static struct pci_error_handlers atl1c_e
+@@ -2880,6 +2880,9 @@ static struct pci_error_handlers atl1c_e
static SIMPLE_DEV_PM_OPS(atl1c_pm_ops, atl1c_suspend, atl1c_resume);
static struct pci_driver atl1c_driver = {
.name = atl1c_driver_name,
.id_table = atl1c_pci_tbl,
-@@ -2885,7 +2888,12 @@ static struct pci_driver atl1c_driver =
+@@ -2887,7 +2890,12 @@ static struct pci_driver atl1c_driver =
.remove = __devexit_p(atl1c_remove),
.shutdown = atl1c_shutdown,
.err_handler = &atl1c_err_handler,
int ath_pci_init(void)
--- a/drivers/net/wireless/libertas/if_spi.c
+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1253,6 +1253,7 @@ static int __devexit libertas_spi_remove
+@@ -1255,6 +1255,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);
-@@ -1286,6 +1287,7 @@ static const struct dev_pm_ops if_spi_pm
+@@ -1288,6 +1289,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,
-@@ -1294,7 +1296,9 @@ static struct spi_driver libertas_spi_dr
+@@ -1296,7 +1298,9 @@ static struct spi_driver libertas_spi_dr
.name = "libertas_spi",
.bus = &spi_bus_type,
.owner = THIS_MODULE,
--- a/drivers/net/wireless/iwlegacy/iwl-core.c
+++ b/drivers/net/wireless/iwlegacy/iwl-core.c
-@@ -2050,15 +2050,17 @@ int iwl_legacy_pci_resume(struct device
+@@ -2015,15 +2015,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
-@@ -507,7 +507,12 @@ __le32 iwl_legacy_add_beacon_time(struct
+@@ -498,7 +498,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
-@@ -4236,7 +4236,12 @@ static struct pci_driver iwl3945_driver
+@@ -3961,7 +3961,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
+@@ -3226,7 +3226,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
-@@ -3919,7 +3919,12 @@ static struct pci_driver iwl_driver = {
+@@ -4001,7 +4001,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
-@@ -2021,13 +2021,9 @@ int iwl_pci_resume(struct device *device
+@@ -2014,13 +2014,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
-@@ -504,7 +504,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr
+@@ -502,7 +502,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);
tty_driver_flush_buffer(tty);
return 0;
-@@ -403,7 +408,9 @@ static int hci_uart_register_dev(struct
+@@ -398,7 +403,9 @@ static int hci_uart_register_dev(struct
hdev->flush = hci_uart_flush;
hdev->send = hci_uart_send_frame;
hdev->destruct = hci_uart_destruct;
hdev->owner = THIS_MODULE;
-@@ -503,7 +510,11 @@ static int hci_uart_tty_ioctl(struct tty
+@@ -498,7 +505,11 @@ static int hci_uart_tty_ioctl(struct tty
return hu->hdev_flags;
default:
err = put_user(amount, (int __user *) arg);
--- a/net/bluetooth/cmtp/capi.c
+++ b/net/bluetooth/cmtp/capi.c
-@@ -385,7 +385,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);
struct rfcomm_dlc *dlc = dev->dlc;
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
-@@ -429,8 +429,12 @@ static struct sock *sco_sock_alloc(struc
+@@ -438,8 +438,12 @@ static struct sock *sco_sock_alloc(struc
return sk;
}
{
struct sock *sk;
-@@ -646,7 +650,11 @@ static int sco_sock_sendmsg(struct kiocb
+@@ -655,7 +659,11 @@ static int sco_sock_sendmsg(struct kiocb
return err;
}
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
-@@ -579,7 +579,14 @@ static int l2cap_sock_setsockopt_old(str
+@@ -557,7 +557,14 @@ static int l2cap_sock_setsockopt_old(str
return err;
}
{
struct sock *sk = sock->sk;
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
-@@ -1027,8 +1034,12 @@ struct sock *l2cap_sock_alloc(struct net
+@@ -950,8 +957,12 @@ static struct sock *l2cap_sock_alloc(str
return sk;
}
+#endif
{
struct sock *sk;
- struct l2cap_chan *chan;
-@@ -1041,7 +1052,11 @@ static int l2cap_sock_create(struct net
+
+@@ -963,7 +974,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
-@@ -1226,6 +1226,7 @@ void ieee80211_if_remove(struct ieee8021
+@@ -1230,6 +1230,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;
-@@ -1243,6 +1244,22 @@ void ieee80211_remove_interfaces(struct
+@@ -1247,6 +1248,22 @@ void ieee80211_remove_interfaces(struct
unregister_netdevice_many(&unreg_list);
list_del(&unreg_list);
}
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/kernel.h>
-@@ -522,6 +524,7 @@ static char *cmtp_procinfo(struct capi_c
+@@ -521,6 +523,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;
-@@ -554,6 +557,36 @@ static const struct file_operations cmtp
+@@ -553,6 +556,36 @@ static const struct file_operations cmtp
.release = single_release,
};
int cmtp_attach_device(struct cmtp_session *session)
{
unsigned char buf[4];
-@@ -592,7 +625,11 @@ int cmtp_attach_device(struct cmtp_sessi
+@@ -591,7 +624,11 @@ int cmtp_attach_device(struct cmtp_sessi
session->ctrl.send_message = cmtp_send_message;
session->ctrl.procinfo = cmtp_procinfo;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -1591,6 +1591,10 @@ static void ieee80211_xmit(struct ieee80
+@@ -1596,6 +1596,10 @@ static void ieee80211_xmit(struct ieee80
return;
}
ieee80211_set_qos_hdr(local, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2084,7 +2088,14 @@ void ieee80211_tx_pending(unsigned long
+@@ -2089,7 +2093,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/b44.c
+++ b/drivers/net/b44.c
-@@ -1688,7 +1688,11 @@ static int __b44_load_mcast(struct b44 *
+@@ -1689,7 +1689,11 @@ static int __b44_load_mcast(struct b44 *
netdev_for_each_mc_addr(ha, dev) {
if (i == num_ents)
break;
}
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
-@@ -1317,19 +1317,37 @@ static void adm8211_bss_info_changed(str
+@@ -1318,19 +1318,37 @@ static void adm8211_bss_info_changed(str
}
static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw,
}
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -235,18 +235,34 @@ static int lbs_add_mcast_addrs(struct cm
+@@ -236,18 +236,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/drivers/net/wireless/libertas_tf/main.c
+++ b/drivers/net/wireless/libertas_tf/main.c
-@@ -417,20 +417,36 @@ static int lbtf_op_config(struct ieee802
+@@ -418,20 +418,36 @@ static int lbtf_op_config(struct ieee802
}
static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw,
p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
-@@ -2537,15 +2537,21 @@ struct mwl8k_cmd_mac_multicast_adr {
+@@ -2538,15 +2538,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;
-@@ -2566,13 +2572,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
+@@ -2567,13 +2573,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee
if (allmulti) {
cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST);
} else if (mc_count) {
}
}
-@@ -4723,7 +4743,11 @@ mwl8k_bss_info_changed(struct ieee80211_
+@@ -4724,7 +4744,11 @@ mwl8k_bss_info_changed(struct ieee80211_
}
static u64 mwl8k_prepare_multicast(struct ieee80211_hw *hw,
{
struct mwl8k_cmd_pkt *cmd;
-@@ -4734,7 +4758,11 @@ static u64 mwl8k_prepare_multicast(struc
+@@ -4735,7 +4759,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;
}
-@@ -4856,7 +4884,11 @@ static void mwl8k_configure_filter(struc
+@@ -4857,7 +4885,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
-@@ -811,10 +811,19 @@ static void rtl8180_bss_info_changed(str
+@@ -812,10 +812,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
-@@ -2085,11 +2085,20 @@ struct wl1271_filter_params {
+@@ -2086,11 +2086,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))
-@@ -2102,16 +2111,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -2103,16 +2112,40 @@ static u64 wl1271_op_prepare_multicast(s
}
/* update multicast filtering parameters */
return hash.low | ((u64)hash.high << 32);
--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
-@@ -714,7 +714,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
-@@ -1882,7 +1882,11 @@ struct ieee80211_ops {
+@@ -1883,7 +1883,11 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -1012,6 +1012,7 @@ static int if_sdio_probe(struct sdio_fun
+@@ -1039,6 +1039,7 @@ static int if_sdio_probe(struct sdio_fun
if (ret)
- goto disable;
+ goto release;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
/* 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. */
-@@ -1030,6 +1031,7 @@ static int if_sdio_probe(struct sdio_fun
+@@ -1057,6 +1058,7 @@ static int if_sdio_probe(struct sdio_fun
if (ret)
goto release_int;
}
if (ret)
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
-@@ -60,7 +60,9 @@ mwifiex_sdio_probe(struct sdio_func *fun
+@@ -77,7 +77,9 @@ mwifiex_sdio_probe(struct sdio_func *fun
card->func = func;
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -1198,6 +1198,7 @@ static void if_sdio_remove(struct sdio_f
+@@ -1241,6 +1241,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);
-@@ -1251,15 +1252,18 @@ static const struct dev_pm_ops if_sdio_p
+@@ -1294,15 +1295,18 @@ static const struct dev_pm_ops if_sdio_p
.suspend = if_sdio_suspend,
.resume = if_sdio_resume,
};
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
-@@ -3698,8 +3698,12 @@ static inline int l2cap_data_channel(str
+@@ -3905,8 +3905,12 @@ static inline int l2cap_data_channel(str
if (!sock_owned_by_user(sk)) {
l2cap_ertm_data_rcv(sk, skb);
} else {
atl1c_up(adapter);
clear_bit(__AT_RESETTING, &adapter->flags);
if (adapter->hw.ctrl_flags & ATL1C_FPGA_VERSION) {
-@@ -2586,7 +2599,9 @@ static const struct net_device_ops atl1c
+@@ -2588,7 +2601,9 @@ static const struct net_device_ops atl1c
.ndo_set_mac_address = atl1c_set_mac_addr,
.ndo_set_multicast_list = atl1c_set_multi,
.ndo_change_mtu = atl1c_change_mtu,
.ndo_do_ioctl = atl1c_ioctl,
.ndo_tx_timeout = atl1c_tx_timeout,
.ndo_get_stats = atl1c_get_stats,
-@@ -2607,6 +2622,7 @@ static int atl1c_init_netdev(struct net_
+@@ -2609,6 +2624,7 @@ static int atl1c_init_netdev(struct net_
atl1c_set_ethtool_ops(netdev);
/* TODO: add when ready */
netdev->hw_features = NETIF_F_SG |
NETIF_F_HW_CSUM |
NETIF_F_HW_VLAN_TX |
-@@ -2614,6 +2630,14 @@ static int atl1c_init_netdev(struct net_
+@@ -2616,6 +2632,14 @@ static int atl1c_init_netdev(struct net_
NETIF_F_TSO6;
netdev->features = netdev->hw_features |
NETIF_F_HW_VLAN_RX;