if (unlikely(retval < 0)) {
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
-@@ -1376,7 +1376,7 @@ usbnet_probe (struct usb_interface *udev
+@@ -1377,7 +1377,7 @@ usbnet_probe (struct usb_interface *udev
net->features |= NETIF_F_HIGHDMA;
#endif
wdev->netdev = ndev;
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -951,7 +951,7 @@ struct lbs_private *lbs_add_card(void *c
+@@ -981,7 +981,7 @@ struct lbs_private *lbs_add_card(void *c
wdev->netdev = dev;
priv->dev = dev;
--- a/drivers/net/ethernet/atheros/atlx/atl1.c
+++ b/drivers/net/ethernet/atheros/atlx/atl1.c
-@@ -2968,7 +2968,7 @@ static int __devinit atl1_probe(struct p
+@@ -2966,7 +2966,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
-@@ -534,9 +534,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -537,9 +537,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;
-@@ -570,9 +575,14 @@ cfg80211_bss_update(struct cfg80211_regi
+@@ -573,9 +578,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
-@@ -4936,7 +4936,9 @@ static int nl80211_wiphy_netns(struct sk
+@@ -4945,7 +4945,9 @@ static int nl80211_wiphy_netns(struct sk
if (!net_eq(wiphy_net(&rdev->wiphy), net))
err = cfg80211_switch_netns(rdev, net);
zd_rf_al2230.o zd_rf_rf2959.o \
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
-@@ -218,7 +218,7 @@ extern void bt_sysfs_cleanup(void);
+@@ -245,7 +245,7 @@ extern void bt_sysfs_cleanup(void);
extern struct dentry *bt_debugfs;
int l2cap_init(void);
void l2cap_exit(void);
#else
-@@ -232,7 +232,7 @@ static inline void l2cap_exit(void)
+@@ -259,7 +259,7 @@ static inline void l2cap_exit(void)
}
#endif
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -1904,6 +1904,9 @@ struct wiphy_wowlan_support {
+@@ -1907,6 +1907,9 @@ struct wiphy_wowlan_support {
struct wiphy {
/* assign these fields before you register the wiphy */
unsigned long state,
--- a/net/bluetooth/bnep/core.c
+++ b/net/bluetooth/bnep/core.c
-@@ -551,9 +551,11 @@ static struct device *bnep_get_device(st
+@@ -549,9 +549,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
-@@ -1289,13 +1289,17 @@ static const struct net_device_ops usbne
+@@ -1290,13 +1290,17 @@ static const struct net_device_ops usbne
// precondition: never called in_interrupt
};
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
-@@ -400,6 +400,7 @@ err_eio:
- return -EIO;
+@@ -398,6 +398,7 @@ err:
+ return ret;
}
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count,
unsigned char report_type)
{
-@@ -459,6 +460,16 @@ err:
+@@ -456,6 +457,16 @@ err:
mutex_unlock(&session->report_mutex);
return ret;
}
static void hidp_idle_timeout(unsigned long arg)
{
-@@ -749,8 +760,14 @@ static int hidp_session(void *arg)
+@@ -757,8 +768,14 @@ static int hidp_session(void *arg)
}
if (session->hid) {
}
/* Wakeup user-space polling for socket errors */
-@@ -865,6 +882,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;
-@@ -952,7 +1033,9 @@ static int hidp_setup_hid(struct hidp_se
- hid->dev.parent = hidp_get_device(session);
+@@ -956,7 +1037,9 @@ static int hidp_setup_hid(struct hidp_se
+ hid->dev.parent = &session->conn->dev;
hid->ll_driver = &hidp_hid_driver;
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,38))
hid->hid_output_raw_report = hidp_output_raw_report;
return 0;
-@@ -963,6 +1046,7 @@ fault:
+@@ -967,6 +1050,7 @@ fault:
return err;
}
down_write(&hidp_session_sem);
s = __hidp_get_session(&bt_sk(ctrl_sock->sk)->dst);
-@@ -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;
+@@ -1029,6 +1146,7 @@ int hidp_add_connection(struct hidp_conn
+
+ __hidp_link_session(session);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
if (req->rd_size > 0) {
err = hidp_setup_hid(session, req);
- if (err && err != -ENODEV)
-@@ -1026,6 +1144,16 @@ int hidp_add_connection(struct hidp_conn
+ if (err)
+@@ -1040,6 +1158,16 @@ int hidp_add_connection(struct hidp_conn
if (err < 0)
goto purge;
}
+ hidp_setup_hid(session, req);
+#endif
- __hidp_link_session(session);
+ hidp_set_timer(session);
-@@ -1084,6 +1212,7 @@ unlink:
+@@ -1098,6 +1226,7 @@ unlink:
session->input = NULL;
}
if (session->hid) {
hid_destroy_device(session->hid);
session->hid = NULL;
-@@ -1095,10 +1224,15 @@ unlink:
- purge:
+@@ -1111,10 +1240,15 @@ purge:
+
skb_queue_purge(&session->ctrl_transmit);
skb_queue_purge(&session->intr_transmit);
+#endif
kfree(session);
return err;
}
-@@ -1182,6 +1316,7 @@ int hidp_get_conninfo(struct hidp_connin
+@@ -1195,6 +1329,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) },
{ }
-@@ -1191,6 +1326,7 @@ static struct hid_driver hidp_driver = {
+@@ -1204,6 +1339,7 @@ static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
static int __init hidp_init(void)
{
-@@ -1198,11 +1334,14 @@ static int __init hidp_init(void)
+@@ -1211,11 +1347,14 @@ static int __init hidp_init(void)
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
if (ret)
goto err_drv;
-@@ -1210,13 +1349,16 @@ static int __init hidp_init(void)
+@@ -1223,13 +1362,16 @@ static int __init hidp_init(void)
err_drv:
hid_unregister_driver(&hidp_driver);
err:
module_init(hidp_init);
--- a/net/bluetooth/rfcomm/sock.c
+++ b/net/bluetooth/rfcomm/sock.c
-@@ -322,8 +322,13 @@ static struct sock *rfcomm_sock_alloc(st
+@@ -325,8 +325,13 @@ static struct sock *rfcomm_sock_alloc(st
return sk;
}
{
struct sock *sk;
-@@ -675,7 +680,11 @@ static int rfcomm_sock_setsockopt_old(st
+@@ -680,7 +685,11 @@ static int rfcomm_sock_setsockopt_old(st
return err;
}
struct bt_security sec;
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
-@@ -735,8 +735,12 @@ static int rfcomm_tty_open(struct tty_st
+@@ -731,8 +731,12 @@ static int rfcomm_tty_open(struct tty_st
remove_wait_queue(&dev->wait, &wait);
if (err == 0)
rfcomm_tty_copy_pending(dev);
-@@ -756,7 +760,11 @@ static void rfcomm_tty_close(struct tty_
+@@ -752,7 +756,11 @@ static void rfcomm_tty_close(struct tty_
if (atomic_dec_and_test(&dev->opened)) {
if (dev->tty_dev->parent)
/* Close DLC and dettach TTY */
rfcomm_dlc_close(dev->dlc, 0);
-@@ -832,7 +840,11 @@ static int rfcomm_tty_write_room(struct
+@@ -828,7 +836,11 @@ static int rfcomm_tty_write_room(struct
return room;
}
{
BT_DBG("tty %p cmd 0x%02x", tty, cmd);
-@@ -1091,7 +1103,11 @@ static void rfcomm_tty_hangup(struct tty
+@@ -1087,7 +1099,11 @@ static void rfcomm_tty_hangup(struct tty
}
}
{
struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data;
-@@ -1100,7 +1116,11 @@ static int rfcomm_tty_tiocmget(struct tt
+@@ -1096,7 +1112,11 @@ static int rfcomm_tty_tiocmget(struct tt
return dev->modem_status;
}
struct rfcomm_dlc *dlc = dev->dlc;
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
-@@ -438,8 +438,12 @@ static struct sock *sco_sock_alloc(struc
+@@ -441,8 +441,12 @@ static struct sock *sco_sock_alloc(struc
return sk;
}
{
struct sock *sk;
-@@ -655,7 +659,11 @@ static int sco_sock_sendmsg(struct kiocb
+@@ -658,7 +662,11 @@ static int sco_sock_sendmsg(struct kiocb
return err;
}
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
-@@ -563,7 +563,14 @@ static int l2cap_sock_setsockopt_old(str
+@@ -582,7 +582,14 @@ static int l2cap_sock_setsockopt_old(str
return err;
}
{
struct sock *sk = sock->sk;
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
-@@ -1013,8 +1020,12 @@ static struct sock *l2cap_sock_alloc(str
+@@ -1062,8 +1069,12 @@ static struct sock *l2cap_sock_alloc(str
return sk;
}
{
struct sock *sk;
-@@ -1026,7 +1037,11 @@ static int l2cap_sock_create(struct net
+@@ -1075,7 +1086,11 @@ static int l2cap_sock_create(struct net
sock->type != SOCK_DGRAM && sock->type != SOCK_RAW)
return -ESOCKTNOSUPPORT;
ieee80211_set_qos_hdr(sdata, skb);
ieee80211_tx(sdata, skb, false);
rcu_read_unlock();
-@@ -2116,7 +2120,14 @@ void ieee80211_tx_pending(unsigned long
+@@ -2115,7 +2119,14 @@ void ieee80211_tx_pending(unsigned long
if (skb_queue_empty(&local->pending[i]))
list_for_each_entry_rcu(sdata, &local->interfaces, list)
struct hci_dev *hdev = info->hdev;
if (!hdev)
-@@ -864,7 +901,18 @@ static int bluecard_probe(struct pcmcia_
+@@ -862,7 +899,18 @@ static int bluecard_probe(struct pcmcia_
info->p_dev = link;
link->priv = info;
return bluecard_config(link);
}
-@@ -884,15 +932,30 @@ static int bluecard_config(struct pcmcia
+@@ -882,15 +930,30 @@ static int bluecard_config(struct pcmcia
bluecard_info_t *info = link->priv;
int i, n;
if (i == 0)
break;
}
-@@ -900,9 +963,15 @@ static int bluecard_config(struct pcmcia
+@@ -898,9 +961,15 @@ static int bluecard_config(struct pcmcia
if (i != 0)
goto failed;
i = pcmcia_enable_device(link);
if (i != 0)
-@@ -940,7 +1009,13 @@ MODULE_DEVICE_TABLE(pcmcia, bluecard_ids
+@@ -938,7 +1007,13 @@ MODULE_DEVICE_TABLE(pcmcia, bluecard_ids
static struct pcmcia_driver bluecard_driver = {
.owner = THIS_MODULE,
/* Reset */
bt3c_io_write(iobase, 0x8040, 0x0404);
-@@ -656,8 +672,27 @@ static int bt3c_probe(struct pcmcia_devi
+@@ -654,8 +670,27 @@ static int bt3c_probe(struct pcmcia_devi
info->p_dev = link;
link->priv = info;
return bt3c_config(link);
}
-@@ -671,6 +706,7 @@ static void bt3c_detach(struct pcmcia_de
+@@ -669,6 +704,7 @@ static void bt3c_detach(struct pcmcia_de
kfree(info);
}
static int bt3c_check_config(struct pcmcia_device *p_dev, void *priv_data)
{
int *try = priv_data;
-@@ -709,6 +745,63 @@ static int bt3c_check_config_notpicky(st
+@@ -707,6 +743,63 @@ static int bt3c_check_config_notpicky(st
}
return -ENODEV;
}
static int bt3c_config(struct pcmcia_device *link)
{
-@@ -732,9 +825,15 @@ static int bt3c_config(struct pcmcia_dev
+@@ -730,9 +823,15 @@ static int bt3c_config(struct pcmcia_dev
goto failed;
found_port:
i = pcmcia_enable_device(link);
if (i != 0)
-@@ -769,7 +868,13 @@ MODULE_DEVICE_TABLE(pcmcia, bt3c_ids);
+@@ -767,7 +866,13 @@ MODULE_DEVICE_TABLE(pcmcia, bt3c_ids);
static struct pcmcia_driver bt3c_driver = {
.owner = THIS_MODULE,
struct hci_dev *hdev = info->hdev;
if (!hdev)
-@@ -585,8 +609,27 @@ static int btuart_probe(struct pcmcia_de
+@@ -583,8 +607,27 @@ static int btuart_probe(struct pcmcia_de
info->p_dev = link;
link->priv = info;
return btuart_config(link);
}
-@@ -600,6 +643,7 @@ static void btuart_detach(struct pcmcia_
+@@ -598,6 +641,7 @@ static void btuart_detach(struct pcmcia_
kfree(info);
}
static int btuart_check_config(struct pcmcia_device *p_dev, void *priv_data)
{
int *try = priv_data;
-@@ -638,6 +682,63 @@ static int btuart_check_config_notpicky(
+@@ -636,6 +680,63 @@ static int btuart_check_config_notpicky(
}
return -ENODEV;
}
static int btuart_config(struct pcmcia_device *link)
{
-@@ -661,9 +762,15 @@ static int btuart_config(struct pcmcia_d
+@@ -659,9 +760,15 @@ static int btuart_config(struct pcmcia_d
goto failed;
found_port:
i = pcmcia_enable_device(link);
if (i != 0)
-@@ -697,7 +804,13 @@ MODULE_DEVICE_TABLE(pcmcia, btuart_ids);
+@@ -695,7 +802,13 @@ MODULE_DEVICE_TABLE(pcmcia, btuart_ids);
static struct pcmcia_driver btuart_driver = {
.owner = THIS_MODULE,
struct hci_dev *hdev = info->hdev;
if (!hdev)
-@@ -571,7 +596,24 @@ static int dtl1_probe(struct pcmcia_devi
+@@ -569,7 +594,24 @@ static int dtl1_probe(struct pcmcia_devi
info->p_dev = link;
link->priv = info;
return dtl1_config(link);
}
-@@ -586,6 +628,7 @@ static void dtl1_detach(struct pcmcia_de
+@@ -584,6 +626,7 @@ static void dtl1_detach(struct pcmcia_de
kfree(info);
}
static int dtl1_confcheck(struct pcmcia_device *p_dev, void *priv_data)
{
if ((p_dev->resource[1]->end) || (p_dev->resource[1]->end < 8))
-@@ -596,6 +639,29 @@ static int dtl1_confcheck(struct pcmcia_
+@@ -594,6 +637,29 @@ static int dtl1_confcheck(struct pcmcia_
return pcmcia_request_io(p_dev);
}
static int dtl1_config(struct pcmcia_device *link)
{
-@@ -603,13 +669,23 @@ static int dtl1_config(struct pcmcia_dev
+@@ -601,13 +667,23 @@ static int dtl1_config(struct pcmcia_dev
int i;
/* Look for a generic full-sized window */
i = pcmcia_enable_device(link);
if (i != 0)
-@@ -647,7 +723,13 @@ MODULE_DEVICE_TABLE(pcmcia, dtl1_ids);
+@@ -645,7 +721,13 @@ MODULE_DEVICE_TABLE(pcmcia, dtl1_ids);
static struct pcmcia_driver dtl1_driver = {
.owner = THIS_MODULE,
}
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
-@@ -313,18 +313,34 @@ static int lbs_add_mcast_addrs(struct cm
+@@ -343,18 +343,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/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -780,7 +780,12 @@ struct ieee80211_local {
+@@ -781,7 +781,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;
/* aggregated multicast list */
ntype == NL80211_IFTYPE_P2P_CLIENT))
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -1558,7 +1558,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -1563,7 +1563,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
-@@ -3744,8 +3744,12 @@ static inline int l2cap_data_channel(str
+@@ -4206,8 +4206,12 @@ static inline int l2cap_data_channel(str
if (!sock_owned_by_user(sk)) {
l2cap_ertm_data_rcv(sk, skb);
} else {
+ -I$(obj)/../include
BRCMUTIL_OFILES := \
- utils.o \
+ utils.o
--- a/net/wireless/Makefile
+++ b/net/wireless/Makefile
@@ -18,6 +18,6 @@ cfg80211-$(CONFIG_CFG80211_INTERNAL_REGD
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -1111,6 +1111,10 @@ static void __exit ieee80211_exit(void)
+@@ -1107,6 +1107,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();
}
--- a/drivers/net/ethernet/atheros/atlx/atl1.c
+++ b/drivers/net/ethernet/atheros/atlx/atl1.c
-@@ -2875,8 +2875,10 @@ static const struct net_device_ops atl1_
+@@ -2873,8 +2873,10 @@ static const struct net_device_ops atl1_
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = atl1_set_mac,
.ndo_change_mtu = atl1_change_mtu,
.ndo_do_ioctl = atlx_ioctl,
.ndo_tx_timeout = atlx_tx_timeout,
#ifdef CONFIG_NET_POLL_CONTROLLER
-@@ -2986,11 +2988,13 @@ static int __devinit atl1_probe(struct p
+@@ -2984,11 +2986,13 @@ static int __devinit atl1_probe(struct p
netdev->features |= NETIF_F_SG;
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
/*
* patch for some L1 of old version,
-@@ -3603,6 +3607,14 @@ static int atl1_set_pauseparam(struct ne
+@@ -3601,6 +3605,14 @@ static int atl1_set_pauseparam(struct ne
return 0;
}
static void atl1_get_strings(struct net_device *netdev, u32 stringset,
u8 *data)
{
-@@ -3675,4 +3687,10 @@ static const struct ethtool_ops atl1_eth
+@@ -3673,4 +3685,10 @@ static const struct ethtool_ops atl1_eth
.nway_reset = atl1_nway_reset,
.get_ethtool_stats = atl1_get_ethtool_stats,
.get_sset_count = atl1_get_sset_count,
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -4027,7 +4027,9 @@ static int nl80211_dump_scan(struct sk_b
+@@ -4036,7 +4036,9 @@ static int nl80211_dump_scan(struct sk_b
spin_lock_bh(&rdev->bss_lock);
cfg80211_bss_expire(rdev);