Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
12f17211
Commit
12f17211
authored
Dec 20, 2015
by
Emmanuel Grumbach
Browse files
Options
Browse Files
Download
Plain Diff
Merge tag 'iwlwifi-for-kalle-2015-12-16' into next
* don't load firmware that won't exist for 7260 * fix RCU splat
parents
e70d41b5
45854360
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
20 deletions
+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
No files found.
drivers/net/wireless/intel/iwlwifi/iwl-7000.c
View file @
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
View file @
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
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment