Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
61a3d4f9
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
61a3d4f9
编写于
9月 08, 2014
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
上级
db906eb2
1bd3fa7b
变更
25
显示空白变更内容
内联
并排
Showing
25 changed file
with
86 addition
and
38 deletion
+86
-38
drivers/bcma/host_pci.c
drivers/bcma/host_pci.c
+1
-0
drivers/net/wireless/at76c50x-usb.c
drivers/net/wireless/at76c50x-usb.c
+1
-2
drivers/net/wireless/ath/ath9k/spectral.c
drivers/net/wireless/ath/ath9k/spectral.c
+1
-1
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/iwlwifi/Kconfig
+0
-2
drivers/net/wireless/iwlwifi/dvm/rxon.c
drivers/net/wireless/iwlwifi/dvm/rxon.c
+12
-0
drivers/net/wireless/iwlwifi/iwl-7000.c
drivers/net/wireless/iwlwifi/iwl-7000.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-8000.c
drivers/net/wireless/iwlwifi/iwl-8000.c
+1
-1
drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c
drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c
+1
-1
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+1
-0
drivers/ssb/b43_pci_bridge.c
drivers/ssb/b43_pci_bridge.c
+1
-0
include/net/bluetooth/hci_core.h
include/net/bluetooth/hci_core.h
+2
-0
include/net/netns/ieee802154_6lowpan.h
include/net/netns/ieee802154_6lowpan.h
+0
-1
include/net/regulatory.h
include/net/regulatory.h
+1
-1
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+8
-0
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+12
-2
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+15
-2
net/ieee802154/6lowpan_rtnl.c
net/ieee802154/6lowpan_rtnl.c
+2
-2
net/ieee802154/reassembly.c
net/ieee802154/reassembly.c
+3
-12
net/mac80211/chan.c
net/mac80211/chan.c
+2
-0
net/mac80211/debugfs_sta.c
net/mac80211/debugfs_sta.c
+1
-1
net/mac80211/iface.c
net/mac80211/iface.c
+2
-2
net/mac80211/mesh_plink.c
net/mac80211/mesh_plink.c
+6
-1
net/mac80211/mlme.c
net/mac80211/mlme.c
+1
-2
net/mac80211/sta_info.c
net/mac80211/sta_info.c
+5
-2
net/mac802154/wpan.c
net/mac802154/wpan.c
+5
-1
未找到文件。
drivers/bcma/host_pci.c
浏览文件 @
61a3d4f9
...
@@ -282,6 +282,7 @@ static const struct pci_device_id bcma_pci_bridge_tbl[] = {
...
@@ -282,6 +282,7 @@ static const struct pci_device_id bcma_pci_bridge_tbl[] = {
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x43a9
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x43a9
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x43aa
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x43aa
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x4727
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x4727
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
43227
)
},
/* 0xA8DB */
{
0
,
},
{
0
,
},
};
};
MODULE_DEVICE_TABLE
(
pci
,
bcma_pci_bridge_tbl
);
MODULE_DEVICE_TABLE
(
pci
,
bcma_pci_bridge_tbl
);
...
...
drivers/net/wireless/at76c50x-usb.c
浏览文件 @
61a3d4f9
...
@@ -2423,8 +2423,6 @@ static void at76_delete_device(struct at76_priv *priv)
...
@@ -2423,8 +2423,6 @@ static void at76_delete_device(struct at76_priv *priv)
kfree_skb
(
priv
->
rx_skb
);
kfree_skb
(
priv
->
rx_skb
);
usb_put_dev
(
priv
->
udev
);
at76_dbg
(
DBG_PROC_ENTRY
,
"%s: before freeing priv/ieee80211_hw"
,
at76_dbg
(
DBG_PROC_ENTRY
,
"%s: before freeing priv/ieee80211_hw"
,
__func__
);
__func__
);
ieee80211_free_hw
(
priv
->
hw
);
ieee80211_free_hw
(
priv
->
hw
);
...
@@ -2558,6 +2556,7 @@ static void at76_disconnect(struct usb_interface *interface)
...
@@ -2558,6 +2556,7 @@ static void at76_disconnect(struct usb_interface *interface)
wiphy_info
(
priv
->
hw
->
wiphy
,
"disconnecting
\n
"
);
wiphy_info
(
priv
->
hw
->
wiphy
,
"disconnecting
\n
"
);
at76_delete_device
(
priv
);
at76_delete_device
(
priv
);
usb_put_dev
(
priv
->
udev
);
dev_info
(
&
interface
->
dev
,
"disconnected
\n
"
);
dev_info
(
&
interface
->
dev
,
"disconnected
\n
"
);
}
}
...
...
drivers/net/wireless/ath/ath9k/spectral.c
浏览文件 @
61a3d4f9
...
@@ -253,7 +253,7 @@ static ssize_t write_file_spec_scan_ctl(struct file *file,
...
@@ -253,7 +253,7 @@ static ssize_t write_file_spec_scan_ctl(struct file *file,
if
(
strncmp
(
"trigger"
,
buf
,
7
)
==
0
)
{
if
(
strncmp
(
"trigger"
,
buf
,
7
)
==
0
)
{
ath9k_spectral_scan_trigger
(
sc
->
hw
);
ath9k_spectral_scan_trigger
(
sc
->
hw
);
}
else
if
(
strncmp
(
"background"
,
buf
,
9
)
==
0
)
{
}
else
if
(
strncmp
(
"background"
,
buf
,
10
)
==
0
)
{
ath9k_spectral_scan_config
(
sc
->
hw
,
SPECTRAL_BACKGROUND
);
ath9k_spectral_scan_config
(
sc
->
hw
,
SPECTRAL_BACKGROUND
);
ath_dbg
(
common
,
CONFIG
,
"spectral scan: background mode enabled
\n
"
);
ath_dbg
(
common
,
CONFIG
,
"spectral scan: background mode enabled
\n
"
);
}
else
if
(
strncmp
(
"chanscan"
,
buf
,
8
)
==
0
)
{
}
else
if
(
strncmp
(
"chanscan"
,
buf
,
8
)
==
0
)
{
...
...
drivers/net/wireless/iwlwifi/Kconfig
浏览文件 @
61a3d4f9
...
@@ -51,7 +51,6 @@ config IWLWIFI_LEDS
...
@@ -51,7 +51,6 @@ config IWLWIFI_LEDS
config IWLDVM
config IWLDVM
tristate "Intel Wireless WiFi DVM Firmware support"
tristate "Intel Wireless WiFi DVM Firmware support"
depends on m
default IWLWIFI
default IWLWIFI
help
help
This is the driver that supports the DVM firmware which is
This is the driver that supports the DVM firmware which is
...
@@ -60,7 +59,6 @@ config IWLDVM
...
@@ -60,7 +59,6 @@ config IWLDVM
config IWLMVM
config IWLMVM
tristate "Intel Wireless WiFi MVM Firmware support"
tristate "Intel Wireless WiFi MVM Firmware support"
depends on m
help
help
This is the driver that supports the MVM firmware which is
This is the driver that supports the MVM firmware which is
currently only available for 7260 and 3160 devices.
currently only available for 7260 and 3160 devices.
...
...
drivers/net/wireless/iwlwifi/dvm/rxon.c
浏览文件 @
61a3d4f9
...
@@ -1068,6 +1068,13 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
...
@@ -1068,6 +1068,13 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
/* recalculate basic rates */
/* recalculate basic rates */
iwl_calc_basic_rates
(
priv
,
ctx
);
iwl_calc_basic_rates
(
priv
,
ctx
);
/*
* force CTS-to-self frames protection if RTS-CTS is not preferred
* one aggregation protection method
*/
if
(
!
priv
->
hw_params
.
use_rts_for_aggregation
)
ctx
->
staging
.
flags
|=
RXON_FLG_SELF_CTS_EN
;
if
((
ctx
->
vif
&&
ctx
->
vif
->
bss_conf
.
use_short_slot
)
||
if
((
ctx
->
vif
&&
ctx
->
vif
->
bss_conf
.
use_short_slot
)
||
!
(
ctx
->
staging
.
flags
&
RXON_FLG_BAND_24G_MSK
))
!
(
ctx
->
staging
.
flags
&
RXON_FLG_BAND_24G_MSK
))
ctx
->
staging
.
flags
|=
RXON_FLG_SHORT_SLOT_MSK
;
ctx
->
staging
.
flags
|=
RXON_FLG_SHORT_SLOT_MSK
;
...
@@ -1473,6 +1480,11 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
...
@@ -1473,6 +1480,11 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
else
else
ctx
->
staging
.
flags
&=
~
RXON_FLG_TGG_PROTECT_MSK
;
ctx
->
staging
.
flags
&=
~
RXON_FLG_TGG_PROTECT_MSK
;
if
(
bss_conf
->
use_cts_prot
)
ctx
->
staging
.
flags
|=
RXON_FLG_SELF_CTS_EN
;
else
ctx
->
staging
.
flags
&=
~
RXON_FLG_SELF_CTS_EN
;
memcpy
(
ctx
->
staging
.
bssid_addr
,
bss_conf
->
bssid
,
ETH_ALEN
);
memcpy
(
ctx
->
staging
.
bssid_addr
,
bss_conf
->
bssid
,
ETH_ALEN
);
if
(
vif
->
type
==
NL80211_IFTYPE_AP
||
if
(
vif
->
type
==
NL80211_IFTYPE_AP
||
...
...
drivers/net/wireless/iwlwifi/iwl-7000.c
浏览文件 @
61a3d4f9
...
@@ -69,8 +69,8 @@
...
@@ -69,8 +69,8 @@
#include "iwl-agn-hw.h"
#include "iwl-agn-hw.h"
/* Highest firmware API version supported */
/* Highest firmware API version supported */
#define IWL7260_UCODE_API_MAX
9
#define IWL7260_UCODE_API_MAX
10
#define IWL3160_UCODE_API_MAX
9
#define IWL3160_UCODE_API_MAX
10
/* Oldest version we won't warn about */
/* Oldest version we won't warn about */
#define IWL7260_UCODE_API_OK 9
#define IWL7260_UCODE_API_OK 9
...
...
drivers/net/wireless/iwlwifi/iwl-8000.c
浏览文件 @
61a3d4f9
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
#include "iwl-agn-hw.h"
#include "iwl-agn-hw.h"
/* Highest firmware API version supported */
/* Highest firmware API version supported */
#define IWL8000_UCODE_API_MAX
9
#define IWL8000_UCODE_API_MAX
10
/* Oldest version we won't warn about */
/* Oldest version we won't warn about */
#define IWL8000_UCODE_API_OK 8
#define IWL8000_UCODE_API_OK 8
...
...
drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c
浏览文件 @
61a3d4f9
...
@@ -101,7 +101,7 @@ static bool halbtc_legacy(struct rtl_priv *adapter)
...
@@ -101,7 +101,7 @@ static bool halbtc_legacy(struct rtl_priv *adapter)
bool
is_legacy
=
false
;
bool
is_legacy
=
false
;
if
((
mac
->
mode
==
WIRELESS_MODE_B
)
||
(
mac
->
mode
==
WIRELESS_MODE_
B
))
if
((
mac
->
mode
==
WIRELESS_MODE_B
)
||
(
mac
->
mode
==
WIRELESS_MODE_
G
))
is_legacy
=
true
;
is_legacy
=
true
;
return
is_legacy
;
return
is_legacy
;
...
...
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
浏览文件 @
61a3d4f9
...
@@ -317,6 +317,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
...
@@ -317,6 +317,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
{
RTL_USB_DEVICE
(
0x0bda
,
0x5088
,
rtl92cu_hal_cfg
)},
/*Thinkware-CC&C*/
{
RTL_USB_DEVICE
(
0x0bda
,
0x5088
,
rtl92cu_hal_cfg
)},
/*Thinkware-CC&C*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x0052
,
rtl92cu_hal_cfg
)},
/*Sitecom - Edimax*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x0052
,
rtl92cu_hal_cfg
)},
/*Sitecom - Edimax*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x005c
,
rtl92cu_hal_cfg
)},
/*Sitecom - Edimax*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x005c
,
rtl92cu_hal_cfg
)},
/*Sitecom - Edimax*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x0070
,
rtl92cu_hal_cfg
)},
/*Sitecom - 150N */
{
RTL_USB_DEVICE
(
0x0df6
,
0x0077
,
rtl92cu_hal_cfg
)},
/*Sitecom-WLA2100V2*/
{
RTL_USB_DEVICE
(
0x0df6
,
0x0077
,
rtl92cu_hal_cfg
)},
/*Sitecom-WLA2100V2*/
{
RTL_USB_DEVICE
(
0x0eb0
,
0x9071
,
rtl92cu_hal_cfg
)},
/*NO Brand - Etop*/
{
RTL_USB_DEVICE
(
0x0eb0
,
0x9071
,
rtl92cu_hal_cfg
)},
/*NO Brand - Etop*/
{
RTL_USB_DEVICE
(
0x4856
,
0x0091
,
rtl92cu_hal_cfg
)},
/*NetweeN - Feixun*/
{
RTL_USB_DEVICE
(
0x4856
,
0x0091
,
rtl92cu_hal_cfg
)},
/*NetweeN - Feixun*/
...
...
drivers/ssb/b43_pci_bridge.c
浏览文件 @
61a3d4f9
...
@@ -38,6 +38,7 @@ static const struct pci_device_id b43_pci_bridge_tbl[] = {
...
@@ -38,6 +38,7 @@ static const struct pci_device_id b43_pci_bridge_tbl[] = {
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x432b
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x432b
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x432c
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x432c
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x4350
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x4350
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_BROADCOM
,
0x4351
)
},
{
0
,
},
{
0
,
},
};
};
MODULE_DEVICE_TABLE
(
pci
,
b43_pci_bridge_tbl
);
MODULE_DEVICE_TABLE
(
pci
,
b43_pci_bridge_tbl
);
...
...
include/net/bluetooth/hci_core.h
浏览文件 @
61a3d4f9
...
@@ -464,6 +464,8 @@ struct hci_conn_params {
...
@@ -464,6 +464,8 @@ struct hci_conn_params {
HCI_AUTO_CONN_ALWAYS
,
HCI_AUTO_CONN_ALWAYS
,
HCI_AUTO_CONN_LINK_LOSS
,
HCI_AUTO_CONN_LINK_LOSS
,
}
auto_connect
;
}
auto_connect
;
struct
hci_conn
*
conn
;
};
};
extern
struct
list_head
hci_dev_list
;
extern
struct
list_head
hci_dev_list
;
...
...
include/net/netns/ieee802154_6lowpan.h
浏览文件 @
61a3d4f9
...
@@ -16,7 +16,6 @@ struct netns_sysctl_lowpan {
...
@@ -16,7 +16,6 @@ struct netns_sysctl_lowpan {
struct
netns_ieee802154_lowpan
{
struct
netns_ieee802154_lowpan
{
struct
netns_sysctl_lowpan
sysctl
;
struct
netns_sysctl_lowpan
sysctl
;
struct
netns_frags
frags
;
struct
netns_frags
frags
;
int
max_dsize
;
};
};
#endif
#endif
include/net/regulatory.h
浏览文件 @
61a3d4f9
...
@@ -167,7 +167,7 @@ struct ieee80211_reg_rule {
...
@@ -167,7 +167,7 @@ struct ieee80211_reg_rule {
struct
ieee80211_regdomain
{
struct
ieee80211_regdomain
{
struct
rcu_head
rcu_head
;
struct
rcu_head
rcu_head
;
u32
n_reg_rules
;
u32
n_reg_rules
;
char
alpha2
[
2
];
char
alpha2
[
3
];
enum
nl80211_dfs_regions
dfs_region
;
enum
nl80211_dfs_regions
dfs_region
;
struct
ieee80211_reg_rule
reg_rules
[];
struct
ieee80211_reg_rule
reg_rules
[];
};
};
...
...
net/bluetooth/hci_conn.c
浏览文件 @
61a3d4f9
...
@@ -589,6 +589,14 @@ EXPORT_SYMBOL(hci_get_route);
...
@@ -589,6 +589,14 @@ EXPORT_SYMBOL(hci_get_route);
void
hci_le_conn_failed
(
struct
hci_conn
*
conn
,
u8
status
)
void
hci_le_conn_failed
(
struct
hci_conn
*
conn
,
u8
status
)
{
{
struct
hci_dev
*
hdev
=
conn
->
hdev
;
struct
hci_dev
*
hdev
=
conn
->
hdev
;
struct
hci_conn_params
*
params
;
params
=
hci_pend_le_action_lookup
(
&
hdev
->
pend_le_conns
,
&
conn
->
dst
,
conn
->
dst_type
);
if
(
params
&&
params
->
conn
)
{
hci_conn_drop
(
params
->
conn
);
params
->
conn
=
NULL
;
}
conn
->
state
=
BT_CLOSED
;
conn
->
state
=
BT_CLOSED
;
...
...
net/bluetooth/hci_core.c
浏览文件 @
61a3d4f9
...
@@ -2538,8 +2538,13 @@ static void hci_pend_le_actions_clear(struct hci_dev *hdev)
...
@@ -2538,8 +2538,13 @@ static void hci_pend_le_actions_clear(struct hci_dev *hdev)
{
{
struct
hci_conn_params
*
p
;
struct
hci_conn_params
*
p
;
list_for_each_entry
(
p
,
&
hdev
->
le_conn_params
,
list
)
list_for_each_entry
(
p
,
&
hdev
->
le_conn_params
,
list
)
{
if
(
p
->
conn
)
{
hci_conn_drop
(
p
->
conn
);
p
->
conn
=
NULL
;
}
list_del_init
(
&
p
->
action
);
list_del_init
(
&
p
->
action
);
}
BT_DBG
(
"All LE pending actions cleared"
);
BT_DBG
(
"All LE pending actions cleared"
);
}
}
...
@@ -2580,8 +2585,8 @@ static int hci_dev_do_close(struct hci_dev *hdev)
...
@@ -2580,8 +2585,8 @@ static int hci_dev_do_close(struct hci_dev *hdev)
hci_dev_lock
(
hdev
);
hci_dev_lock
(
hdev
);
hci_inquiry_cache_flush
(
hdev
);
hci_inquiry_cache_flush
(
hdev
);
hci_conn_hash_flush
(
hdev
);
hci_pend_le_actions_clear
(
hdev
);
hci_pend_le_actions_clear
(
hdev
);
hci_conn_hash_flush
(
hdev
);
hci_dev_unlock
(
hdev
);
hci_dev_unlock
(
hdev
);
hci_notify
(
hdev
,
HCI_DEV_DOWN
);
hci_notify
(
hdev
,
HCI_DEV_DOWN
);
...
@@ -3729,6 +3734,9 @@ void hci_conn_params_del(struct hci_dev *hdev, bdaddr_t *addr, u8 addr_type)
...
@@ -3729,6 +3734,9 @@ void hci_conn_params_del(struct hci_dev *hdev, bdaddr_t *addr, u8 addr_type)
if
(
!
params
)
if
(
!
params
)
return
;
return
;
if
(
params
->
conn
)
hci_conn_drop
(
params
->
conn
);
list_del
(
&
params
->
action
);
list_del
(
&
params
->
action
);
list_del
(
&
params
->
list
);
list_del
(
&
params
->
list
);
kfree
(
params
);
kfree
(
params
);
...
@@ -3759,6 +3767,8 @@ void hci_conn_params_clear_all(struct hci_dev *hdev)
...
@@ -3759,6 +3767,8 @@ void hci_conn_params_clear_all(struct hci_dev *hdev)
struct
hci_conn_params
*
params
,
*
tmp
;
struct
hci_conn_params
*
params
,
*
tmp
;
list_for_each_entry_safe
(
params
,
tmp
,
&
hdev
->
le_conn_params
,
list
)
{
list_for_each_entry_safe
(
params
,
tmp
,
&
hdev
->
le_conn_params
,
list
)
{
if
(
params
->
conn
)
hci_conn_drop
(
params
->
conn
);
list_del
(
&
params
->
action
);
list_del
(
&
params
->
action
);
list_del
(
&
params
->
list
);
list_del
(
&
params
->
list
);
kfree
(
params
);
kfree
(
params
);
...
...
net/bluetooth/hci_event.c
浏览文件 @
61a3d4f9
...
@@ -4226,8 +4226,13 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
...
@@ -4226,8 +4226,13 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
hci_proto_connect_cfm
(
conn
,
ev
->
status
);
hci_proto_connect_cfm
(
conn
,
ev
->
status
);
params
=
hci_conn_params_lookup
(
hdev
,
&
conn
->
dst
,
conn
->
dst_type
);
params
=
hci_conn_params_lookup
(
hdev
,
&
conn
->
dst
,
conn
->
dst_type
);
if
(
params
)
if
(
params
)
{
list_del_init
(
&
params
->
action
);
list_del_init
(
&
params
->
action
);
if
(
params
->
conn
)
{
hci_conn_drop
(
params
->
conn
);
params
->
conn
=
NULL
;
}
}
unlock:
unlock:
hci_update_background_scan
(
hdev
);
hci_update_background_scan
(
hdev
);
...
@@ -4309,8 +4314,16 @@ static void check_pending_le_conn(struct hci_dev *hdev, bdaddr_t *addr,
...
@@ -4309,8 +4314,16 @@ static void check_pending_le_conn(struct hci_dev *hdev, bdaddr_t *addr,
conn
=
hci_connect_le
(
hdev
,
addr
,
addr_type
,
BT_SECURITY_LOW
,
conn
=
hci_connect_le
(
hdev
,
addr
,
addr_type
,
BT_SECURITY_LOW
,
HCI_LE_AUTOCONN_TIMEOUT
,
HCI_ROLE_MASTER
);
HCI_LE_AUTOCONN_TIMEOUT
,
HCI_ROLE_MASTER
);
if
(
!
IS_ERR
(
conn
))
if
(
!
IS_ERR
(
conn
))
{
/* Store the pointer since we don't really have any
* other owner of the object besides the params that
* triggered it. This way we can abort the connection if
* the parameters get removed and keep the reference
* count consistent once the connection is established.
*/
params
->
conn
=
conn
;
return
;
return
;
}
switch
(
PTR_ERR
(
conn
))
{
switch
(
PTR_ERR
(
conn
))
{
case
-
EBUSY
:
case
-
EBUSY
:
...
...
net/ieee802154/6lowpan_rtnl.c
浏览文件 @
61a3d4f9
...
@@ -238,7 +238,7 @@ lowpan_alloc_frag(struct sk_buff *skb, int size,
...
@@ -238,7 +238,7 @@ lowpan_alloc_frag(struct sk_buff *skb, int size,
return
ERR_PTR
(
-
rc
);
return
ERR_PTR
(
-
rc
);
}
}
}
else
{
}
else
{
frag
=
ERR_PTR
(
ENOMEM
);
frag
=
ERR_PTR
(
-
ENOMEM
);
}
}
return
frag
;
return
frag
;
...
@@ -429,7 +429,7 @@ static void lowpan_setup(struct net_device *dev)
...
@@ -429,7 +429,7 @@ static void lowpan_setup(struct net_device *dev)
/* Frame Control + Sequence Number + Address fields + Security Header */
/* Frame Control + Sequence Number + Address fields + Security Header */
dev
->
hard_header_len
=
2
+
1
+
20
+
14
;
dev
->
hard_header_len
=
2
+
1
+
20
+
14
;
dev
->
needed_tailroom
=
2
;
/* FCS */
dev
->
needed_tailroom
=
2
;
/* FCS */
dev
->
mtu
=
1281
;
dev
->
mtu
=
IPV6_MIN_MTU
;
dev
->
tx_queue_len
=
0
;
dev
->
tx_queue_len
=
0
;
dev
->
flags
=
IFF_BROADCAST
|
IFF_MULTICAST
;
dev
->
flags
=
IFF_BROADCAST
|
IFF_MULTICAST
;
dev
->
watchdog_timeo
=
0
;
dev
->
watchdog_timeo
=
0
;
...
...
net/ieee802154/reassembly.c
浏览文件 @
61a3d4f9
...
@@ -355,8 +355,6 @@ int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type)
...
@@ -355,8 +355,6 @@ int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type)
struct
net
*
net
=
dev_net
(
skb
->
dev
);
struct
net
*
net
=
dev_net
(
skb
->
dev
);
struct
lowpan_frag_info
*
frag_info
=
lowpan_cb
(
skb
);
struct
lowpan_frag_info
*
frag_info
=
lowpan_cb
(
skb
);
struct
ieee802154_addr
source
,
dest
;
struct
ieee802154_addr
source
,
dest
;
struct
netns_ieee802154_lowpan
*
ieee802154_lowpan
=
net_ieee802154_lowpan
(
net
);
int
err
;
int
err
;
source
=
mac_cb
(
skb
)
->
source
;
source
=
mac_cb
(
skb
)
->
source
;
...
@@ -366,8 +364,10 @@ int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type)
...
@@ -366,8 +364,10 @@ int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type)
if
(
err
<
0
)
if
(
err
<
0
)
goto
err
;
goto
err
;
if
(
frag_info
->
d_size
>
ieee802154_lowpan
->
max_dsize
)
if
(
frag_info
->
d_size
>
IPV6_MIN_MTU
)
{
net_warn_ratelimited
(
"lowpan_frag_rcv: datagram size exceeds MTU
\n
"
);
goto
err
;
goto
err
;
}
fq
=
fq_find
(
net
,
frag_info
,
&
source
,
&
dest
);
fq
=
fq_find
(
net
,
frag_info
,
&
source
,
&
dest
);
if
(
fq
!=
NULL
)
{
if
(
fq
!=
NULL
)
{
...
@@ -415,13 +415,6 @@ static struct ctl_table lowpan_frags_ns_ctl_table[] = {
...
@@ -415,13 +415,6 @@ static struct ctl_table lowpan_frags_ns_ctl_table[] = {
.
mode
=
0644
,
.
mode
=
0644
,
.
proc_handler
=
proc_dointvec_jiffies
,
.
proc_handler
=
proc_dointvec_jiffies
,
},
},
{
.
procname
=
"6lowpanfrag_max_datagram_size"
,
.
data
=
&
init_net
.
ieee802154_lowpan
.
max_dsize
,
.
maxlen
=
sizeof
(
int
),
.
mode
=
0644
,
.
proc_handler
=
proc_dointvec
},
{
}
{
}
};
};
...
@@ -458,7 +451,6 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
...
@@ -458,7 +451,6 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
table
[
1
].
data
=
&
ieee802154_lowpan
->
frags
.
low_thresh
;
table
[
1
].
data
=
&
ieee802154_lowpan
->
frags
.
low_thresh
;
table
[
1
].
extra2
=
&
ieee802154_lowpan
->
frags
.
high_thresh
;
table
[
1
].
extra2
=
&
ieee802154_lowpan
->
frags
.
high_thresh
;
table
[
2
].
data
=
&
ieee802154_lowpan
->
frags
.
timeout
;
table
[
2
].
data
=
&
ieee802154_lowpan
->
frags
.
timeout
;
table
[
3
].
data
=
&
ieee802154_lowpan
->
max_dsize
;
/* Don't export sysctls to unprivileged users */
/* Don't export sysctls to unprivileged users */
if
(
net
->
user_ns
!=
&
init_user_ns
)
if
(
net
->
user_ns
!=
&
init_user_ns
)
...
@@ -533,7 +525,6 @@ static int __net_init lowpan_frags_init_net(struct net *net)
...
@@ -533,7 +525,6 @@ static int __net_init lowpan_frags_init_net(struct net *net)
ieee802154_lowpan
->
frags
.
high_thresh
=
IPV6_FRAG_HIGH_THRESH
;
ieee802154_lowpan
->
frags
.
high_thresh
=
IPV6_FRAG_HIGH_THRESH
;
ieee802154_lowpan
->
frags
.
low_thresh
=
IPV6_FRAG_LOW_THRESH
;
ieee802154_lowpan
->
frags
.
low_thresh
=
IPV6_FRAG_LOW_THRESH
;
ieee802154_lowpan
->
frags
.
timeout
=
IPV6_FRAG_TIMEOUT
;
ieee802154_lowpan
->
frags
.
timeout
=
IPV6_FRAG_TIMEOUT
;
ieee802154_lowpan
->
max_dsize
=
0xFFFF
;
inet_frags_init_net
(
&
ieee802154_lowpan
->
frags
);
inet_frags_init_net
(
&
ieee802154_lowpan
->
frags
);
...
...
net/mac80211/chan.c
浏览文件 @
61a3d4f9
...
@@ -541,6 +541,8 @@ static void ieee80211_recalc_chanctx_chantype(struct ieee80211_local *local,
...
@@ -541,6 +541,8 @@ static void ieee80211_recalc_chanctx_chantype(struct ieee80211_local *local,
continue
;
continue
;
if
(
rcu_access_pointer
(
sdata
->
vif
.
chanctx_conf
)
!=
conf
)
if
(
rcu_access_pointer
(
sdata
->
vif
.
chanctx_conf
)
!=
conf
)
continue
;
continue
;
if
(
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP_VLAN
)
continue
;
if
(
!
compat
)
if
(
!
compat
)
compat
=
&
sdata
->
vif
.
bss_conf
.
chandef
;
compat
=
&
sdata
->
vif
.
bss_conf
.
chandef
;
...
...
net/mac80211/debugfs_sta.c
浏览文件 @
61a3d4f9
...
@@ -168,7 +168,7 @@ static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf,
...
@@ -168,7 +168,7 @@ static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf,
p
+=
scnprintf
(
p
,
sizeof
(
buf
)
+
buf
-
p
,
"next dialog_token: %#02x
\n
"
,
p
+=
scnprintf
(
p
,
sizeof
(
buf
)
+
buf
-
p
,
"next dialog_token: %#02x
\n
"
,
sta
->
ampdu_mlme
.
dialog_token_allocator
+
1
);
sta
->
ampdu_mlme
.
dialog_token_allocator
+
1
);
p
+=
scnprintf
(
p
,
sizeof
(
buf
)
+
buf
-
p
,
p
+=
scnprintf
(
p
,
sizeof
(
buf
)
+
buf
-
p
,
"TID
\t\t
RX
active
\t
DTKN
\t
SSN
\t\t
TX
\t
DTKN
\t
pending
\n
"
);
"TID
\t\t
RX
\t
DTKN
\t
SSN
\t\t
TX
\t
DTKN
\t
pending
\n
"
);
for
(
i
=
0
;
i
<
IEEE80211_NUM_TIDS
;
i
++
)
{
for
(
i
=
0
;
i
<
IEEE80211_NUM_TIDS
;
i
++
)
{
tid_rx
=
rcu_dereference
(
sta
->
ampdu_mlme
.
tid_rx
[
i
]);
tid_rx
=
rcu_dereference
(
sta
->
ampdu_mlme
.
tid_rx
[
i
]);
...
...
net/mac80211/iface.c
浏览文件 @
61a3d4f9
...
@@ -1175,8 +1175,8 @@ static void ieee80211_iface_work(struct work_struct *work)
...
@@ -1175,8 +1175,8 @@ static void ieee80211_iface_work(struct work_struct *work)
if
(
sta
)
{
if
(
sta
)
{
u16
last_seq
;
u16
last_seq
;
last_seq
=
le16_to_cpu
(
last_seq
=
IEEE80211_SEQ_TO_SN
(
le16_to_cpu
(
sta
->
last_seq_ctrl
[
rx_agg
->
tid
]);
sta
->
last_seq_ctrl
[
rx_agg
->
tid
])
)
;
__ieee80211_start_rx_ba_session
(
sta
,
__ieee80211_start_rx_ba_session
(
sta
,
0
,
0
,
0
,
0
,
...
...
net/mac80211/mesh_plink.c
浏览文件 @
61a3d4f9
...
@@ -957,7 +957,8 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata,
...
@@ -957,7 +957,8 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata,
if
(
!
matches_local
)
if
(
!
matches_local
)
event
=
CNF_RJCT
;
event
=
CNF_RJCT
;
if
(
!
mesh_plink_free_count
(
sdata
)
||
if
(
!
mesh_plink_free_count
(
sdata
)
||
(
sta
->
llid
!=
llid
||
sta
->
plid
!=
plid
))
sta
->
llid
!=
llid
||
(
sta
->
plid
&&
sta
->
plid
!=
plid
))
event
=
CNF_IGNR
;
event
=
CNF_IGNR
;
else
else
event
=
CNF_ACPT
;
event
=
CNF_ACPT
;
...
@@ -1074,6 +1075,10 @@ mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata,
...
@@ -1074,6 +1075,10 @@ mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata,
goto
unlock_rcu
;
goto
unlock_rcu
;
}
}
/* 802.11-2012 13.3.7.2 - update plid on CNF if not set */
if
(
!
sta
->
plid
&&
event
==
CNF_ACPT
)
sta
->
plid
=
plid
;
changed
|=
mesh_plink_fsm
(
sdata
,
sta
,
event
);
changed
|=
mesh_plink_fsm
(
sdata
,
sta
,
event
);
unlock_rcu:
unlock_rcu:
...
...
net/mac80211/mlme.c
浏览文件 @
61a3d4f9
...
@@ -4389,8 +4389,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
...
@@ -4389,8 +4389,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
rcu_read_unlock
();
rcu_read_unlock
();
if
(
bss
->
wmm_used
&&
bss
->
uapsd_supported
&&
if
(
bss
->
wmm_used
&&
bss
->
uapsd_supported
&&
(
sdata
->
local
->
hw
.
flags
&
IEEE80211_HW_SUPPORTS_UAPSD
)
&&
(
sdata
->
local
->
hw
.
flags
&
IEEE80211_HW_SUPPORTS_UAPSD
))
{
sdata
->
wmm_acm
!=
0xff
)
{
assoc_data
->
uapsd
=
true
;
assoc_data
->
uapsd
=
true
;
ifmgd
->
flags
|=
IEEE80211_STA_UAPSD_ENABLED
;
ifmgd
->
flags
|=
IEEE80211_STA_UAPSD_ENABLED
;
}
else
{
}
else
{
...
...
net/mac80211/sta_info.c
浏览文件 @
61a3d4f9
...
@@ -1094,8 +1094,11 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
...
@@ -1094,8 +1094,11 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
unsigned
long
flags
;
unsigned
long
flags
;
struct
ps_data
*
ps
;
struct
ps_data
*
ps
;
if
(
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP
||
if
(
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP_VLAN
)
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP_VLAN
)
sdata
=
container_of
(
sdata
->
bss
,
struct
ieee80211_sub_if_data
,
u
.
ap
);
if
(
sdata
->
vif
.
type
==
NL80211_IFTYPE_AP
)
ps
=
&
sdata
->
bss
->
ps
;
ps
=
&
sdata
->
bss
->
ps
;
else
if
(
ieee80211_vif_is_mesh
(
&
sdata
->
vif
))
else
if
(
ieee80211_vif_is_mesh
(
&
sdata
->
vif
))
ps
=
&
sdata
->
u
.
mesh
.
ps
;
ps
=
&
sdata
->
u
.
mesh
.
ps
;
...
...
net/mac802154/wpan.c
浏览文件 @
61a3d4f9
...
@@ -462,7 +462,10 @@ mac802154_subif_frame(struct mac802154_sub_if_data *sdata, struct sk_buff *skb,
...
@@ -462,7 +462,10 @@ mac802154_subif_frame(struct mac802154_sub_if_data *sdata, struct sk_buff *skb,
skb
->
pkt_type
=
PACKET_OTHERHOST
;
skb
->
pkt_type
=
PACKET_OTHERHOST
;
break
;
break
;
default:
default:
break
;
spin_unlock_bh
(
&
sdata
->
mib_lock
);
pr_debug
(
"invalid dest mode
\n
"
);
kfree_skb
(
skb
);
return
NET_RX_DROP
;
}
}
spin_unlock_bh
(
&
sdata
->
mib_lock
);
spin_unlock_bh
(
&
sdata
->
mib_lock
);
...
@@ -575,6 +578,7 @@ void mac802154_wpans_rx(struct mac802154_priv *priv, struct sk_buff *skb)
...
@@ -575,6 +578,7 @@ void mac802154_wpans_rx(struct mac802154_priv *priv, struct sk_buff *skb)
ret
=
mac802154_parse_frame_start
(
skb
,
&
hdr
);
ret
=
mac802154_parse_frame_start
(
skb
,
&
hdr
);
if
(
ret
)
{
if
(
ret
)
{
pr_debug
(
"got invalid frame
\n
"
);
pr_debug
(
"got invalid frame
\n
"
);
kfree_skb
(
skb
);
return
;
return
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录