Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
12f17211
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
12f17211
编写于
12月 20, 2015
作者:
E
Emmanuel Grumbach
浏览文件
操作
浏览文件
下载
差异文件
Merge tag 'iwlwifi-for-kalle-2015-12-16' into next
* don't load firmware that won't exist for 7260 * fix RCU splat
上级
e70d41b5
45854360
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
20 deletion
+44
-20
drivers/net/wireless/intel/iwlwifi/iwl-7000.c
drivers/net/wireless/intel/iwlwifi/iwl-7000.c
+35
-14
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+9
-6
未找到文件。
drivers/net/wireless/intel/iwlwifi/iwl-7000.c
浏览文件 @
12f17211
...
...
@@ -71,13 +71,19 @@
#include "iwl-agn-hw.h"
/* Highest firmware API version supported */
#define IWL7260_UCODE_API_MAX 19
#define IWL7260_UCODE_API_MAX 17
#define IWL7265_UCODE_API_MAX 19
#define IWL7265D_UCODE_API_MAX 19
/* Oldest version we won't warn about */
#define IWL7260_UCODE_API_OK 13
#define IWL7265_UCODE_API_OK 13
#define IWL7265D_UCODE_API_OK 13
/* Lowest firmware API version supported */
#define IWL7260_UCODE_API_MIN 13
#define IWL7265_UCODE_API_MIN 13
#define IWL7265D_UCODE_API_MIN 13
/* NVM versions */
#define IWL7260_NVM_VERSION 0x0a1d
...
...
@@ -151,10 +157,7 @@ static const struct iwl_ht_params iwl7000_ht_params = {
.
ht40_bands
=
BIT
(
IEEE80211_BAND_2GHZ
)
|
BIT
(
IEEE80211_BAND_5GHZ
),
};
#define IWL_DEVICE_7000 \
.ucode_api_max = IWL7260_UCODE_API_MAX, \
.ucode_api_ok = IWL7260_UCODE_API_OK, \
.ucode_api_min = IWL7260_UCODE_API_MIN, \
#define IWL_DEVICE_7000_COMMON \
.device_family = IWL_DEVICE_FAMILY_7000, \
.max_inst_size = IWL60_RTC_INST_SIZE, \
.max_data_size = IWL60_RTC_DATA_SIZE, \
...
...
@@ -165,6 +168,24 @@ static const struct iwl_ht_params iwl7000_ht_params = {
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, \
.dccm_offset = IWL7000_DCCM_OFFSET
#define IWL_DEVICE_7000 \
IWL_DEVICE_7000_COMMON, \
.ucode_api_max = IWL7260_UCODE_API_MAX, \
.ucode_api_ok = IWL7260_UCODE_API_OK, \
.ucode_api_min = IWL7260_UCODE_API_MIN
#define IWL_DEVICE_7005 \
IWL_DEVICE_7000_COMMON, \
.ucode_api_max = IWL7265_UCODE_API_MAX, \
.ucode_api_ok = IWL7265_UCODE_API_OK, \
.ucode_api_min = IWL7265_UCODE_API_MIN
#define IWL_DEVICE_7005D \
IWL_DEVICE_7000_COMMON, \
.ucode_api_max = IWL7265D_UCODE_API_MAX, \
.ucode_api_ok = IWL7265D_UCODE_API_OK, \
.ucode_api_min = IWL7265D_UCODE_API_MIN
const
struct
iwl_cfg
iwl7260_2ac_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless AC 7260"
,
.
fw_name_pre
=
IWL7260_FW_PRE
,
...
...
@@ -268,7 +289,7 @@ static const struct iwl_ht_params iwl7265_ht_params = {
const
struct
iwl_cfg
iwl3165_2ac_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless AC 3165"
,
.
fw_name_pre
=
IWL7265D_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5D
,
.
ht_params
=
&
iwl7000_ht_params
,
.
nvm_ver
=
IWL3165_NVM_VERSION
,
.
nvm_calib_ver
=
IWL3165_TX_POWER_VERSION
,
...
...
@@ -290,7 +311,7 @@ const struct iwl_cfg iwl3168_2ac_cfg = {
const
struct
iwl_cfg
iwl7265_2ac_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless AC 7265"
,
.
fw_name_pre
=
IWL7265_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -301,7 +322,7 @@ const struct iwl_cfg iwl7265_2ac_cfg = {
const
struct
iwl_cfg
iwl7265_2n_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless N 7265"
,
.
fw_name_pre
=
IWL7265_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -312,7 +333,7 @@ const struct iwl_cfg iwl7265_2n_cfg = {
const
struct
iwl_cfg
iwl7265_n_cfg
=
{
.
name
=
"Intel(R) Wireless N 7265"
,
.
fw_name_pre
=
IWL7265_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -323,7 +344,7 @@ const struct iwl_cfg iwl7265_n_cfg = {
const
struct
iwl_cfg
iwl7265d_2ac_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless AC 7265"
,
.
fw_name_pre
=
IWL7265D_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5D
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265D_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -334,7 +355,7 @@ const struct iwl_cfg iwl7265d_2ac_cfg = {
const
struct
iwl_cfg
iwl7265d_2n_cfg
=
{
.
name
=
"Intel(R) Dual Band Wireless N 7265"
,
.
fw_name_pre
=
IWL7265D_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5D
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265D_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -345,7 +366,7 @@ const struct iwl_cfg iwl7265d_2n_cfg = {
const
struct
iwl_cfg
iwl7265d_n_cfg
=
{
.
name
=
"Intel(R) Wireless N 7265"
,
.
fw_name_pre
=
IWL7265D_FW_PRE
,
IWL_DEVICE_700
0
,
IWL_DEVICE_700
5D
,
.
ht_params
=
&
iwl7265_ht_params
,
.
nvm_ver
=
IWL7265D_NVM_VERSION
,
.
nvm_calib_ver
=
IWL7265_TX_POWER_VERSION
,
...
...
@@ -355,5 +376,5 @@ const struct iwl_cfg iwl7265d_n_cfg = {
MODULE_FIRMWARE
(
IWL7260_MODULE_FIRMWARE
(
IWL7260_UCODE_API_OK
));
MODULE_FIRMWARE
(
IWL3160_MODULE_FIRMWARE
(
IWL7260_UCODE_API_OK
));
MODULE_FIRMWARE
(
IWL7265_MODULE_FIRMWARE
(
IWL726
0
_UCODE_API_OK
));
MODULE_FIRMWARE
(
IWL7265D_MODULE_FIRMWARE
(
IWL726
0
_UCODE_API_OK
));
MODULE_FIRMWARE
(
IWL7265_MODULE_FIRMWARE
(
IWL726
5
_UCODE_API_OK
));
MODULE_FIRMWARE
(
IWL7265D_MODULE_FIRMWARE
(
IWL726
5D
_UCODE_API_OK
));
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
浏览文件 @
12f17211
...
...
@@ -1224,8 +1224,8 @@ static u8 iwl_mvm_get_key_sta_id(struct iwl_mvm *mvm,
mvmvif
->
ap_sta_id
!=
IWL_MVM_STATION_COUNT
)
{
u8
sta_id
=
mvmvif
->
ap_sta_id
;
sta
=
rcu_dereference_
protected
(
mvm
->
fw_id_to_mac_id
[
sta_id
],
lockdep_is_held
(
&
mvm
->
mutex
));
sta
=
rcu_dereference_
check
(
mvm
->
fw_id_to_mac_id
[
sta_id
],
lockdep_is_held
(
&
mvm
->
mutex
));
/*
* It is possible that the 'sta' parameter is NULL,
* for example when a GTK is removed - the sta_id will then
...
...
@@ -1592,14 +1592,15 @@ void iwl_mvm_update_tkip_key(struct iwl_mvm *mvm,
u16
*
phase1key
)
{
struct
iwl_mvm_sta
*
mvm_sta
;
u8
sta_id
=
iwl_mvm_get_key_sta_id
(
mvm
,
vif
,
sta
)
;
u8
sta_id
;
bool
mcast
=
!
(
keyconf
->
flags
&
IEEE80211_KEY_FLAG_PAIRWISE
);
if
(
WARN_ON_ONCE
(
sta_id
==
IWL_MVM_STATION_COUNT
))
return
;
rcu_read_lock
();
sta_id
=
iwl_mvm_get_key_sta_id
(
mvm
,
vif
,
sta
);
if
(
WARN_ON_ONCE
(
sta_id
==
IWL_MVM_STATION_COUNT
))
goto
unlock
;
if
(
!
sta
)
{
sta
=
rcu_dereference
(
mvm
->
fw_id_to_mac_id
[
sta_id
]);
if
(
WARN_ON
(
IS_ERR_OR_NULL
(
sta
)))
{
...
...
@@ -1611,6 +1612,8 @@ void iwl_mvm_update_tkip_key(struct iwl_mvm *mvm,
mvm_sta
=
iwl_mvm_sta_from_mac80211
(
sta
);
iwl_mvm_send_sta_key
(
mvm
,
mvm_sta
,
keyconf
,
mcast
,
iv32
,
phase1key
,
CMD_ASYNC
,
keyconf
->
hw_key_idx
);
unlock:
rcu_read_unlock
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录