Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
5e038890
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5e038890
编写于
2月 28, 2014
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
上级
b7b146c9
143582c6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
15 deletion
+19
-15
drivers/net/wireless/iwlwifi/dvm/tx.c
drivers/net/wireless/iwlwifi/dvm/tx.c
+9
-5
drivers/net/wireless/iwlwifi/mvm/mvm.h
drivers/net/wireless/iwlwifi/mvm/mvm.h
+1
-1
drivers/net/wireless/iwlwifi/mvm/tx.c
drivers/net/wireless/iwlwifi/mvm/tx.c
+9
-9
未找到文件。
drivers/net/wireless/iwlwifi/dvm/tx.c
浏览文件 @
5e038890
...
...
@@ -1291,8 +1291,6 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv,
struct
iwl_compressed_ba_resp
*
ba_resp
=
(
void
*
)
pkt
->
data
;
struct
iwl_ht_agg
*
agg
;
struct
sk_buff_head
reclaimed_skbs
;
struct
ieee80211_tx_info
*
info
;
struct
ieee80211_hdr
*
hdr
;
struct
sk_buff
*
skb
;
int
sta_id
;
int
tid
;
...
...
@@ -1379,22 +1377,28 @@ int iwlagn_rx_reply_compressed_ba(struct iwl_priv *priv,
freed
=
0
;
skb_queue_walk
(
&
reclaimed_skbs
,
skb
)
{
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
struct
ieee80211_hdr
*
hdr
=
(
void
*
)
skb
->
data
;
struct
ieee80211_tx_info
*
info
=
IEEE80211_SKB_CB
(
skb
);
if
(
ieee80211_is_data_qos
(
hdr
->
frame_control
))
freed
++
;
else
WARN_ON_ONCE
(
1
);
info
=
IEEE80211_SKB_CB
(
skb
);
iwl_trans_free_tx_cmd
(
priv
->
trans
,
info
->
driver_data
[
1
]);
memset
(
&
info
->
status
,
0
,
sizeof
(
info
->
status
));
/* Packet was transmitted successfully, failures come as single
* frames because before failing a frame the firmware transmits
* it without aggregation at least once.
*/
info
->
flags
|=
IEEE80211_TX_STAT_ACK
;
if
(
freed
==
1
)
{
/* this is the first skb we deliver in this batch */
/* put the rate scaling data there */
info
=
IEEE80211_SKB_CB
(
skb
);
memset
(
&
info
->
status
,
0
,
sizeof
(
info
->
status
));
info
->
flags
|=
IEEE80211_TX_STAT_ACK
;
info
->
flags
|=
IEEE80211_TX_STAT_AMPDU
;
info
->
status
.
ampdu_ack_len
=
ba_resp
->
txed_2_done
;
info
->
status
.
ampdu_len
=
ba_resp
->
txed
;
...
...
drivers/net/wireless/iwlwifi/mvm/mvm.h
浏览文件 @
5e038890
...
...
@@ -152,7 +152,7 @@ enum iwl_power_scheme {
IWL_POWER_SCHEME_LP
};
#define IWL_CONN_MAX_LISTEN_INTERVAL
7
0
#define IWL_CONN_MAX_LISTEN_INTERVAL
1
0
#define IWL_UAPSD_AC_INFO (IEEE80211_WMM_IE_STA_QOSINFO_AC_VO |\
IEEE80211_WMM_IE_STA_QOSINFO_AC_VI |\
IEEE80211_WMM_IE_STA_QOSINFO_AC_BK |\
...
...
drivers/net/wireless/iwlwifi/mvm/tx.c
浏览文件 @
5e038890
...
...
@@ -822,16 +822,12 @@ int iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
struct
iwl_mvm_ba_notif
*
ba_notif
=
(
void
*
)
pkt
->
data
;
struct
sk_buff_head
reclaimed_skbs
;
struct
iwl_mvm_tid_data
*
tid_data
;
struct
ieee80211_tx_info
*
info
;
struct
ieee80211_sta
*
sta
;
struct
iwl_mvm_sta
*
mvmsta
;
struct
ieee80211_hdr
*
hdr
;
struct
sk_buff
*
skb
;
int
sta_id
,
tid
,
freed
;
/* "flow" corresponds to Tx queue */
u16
scd_flow
=
le16_to_cpu
(
ba_notif
->
scd_flow
);
/* "ssn" is start of block-ack Tx window, corresponds to index
* (in Tx queue's circular buffer) of first TFD/frame in window */
u16
ba_resp_scd_ssn
=
le16_to_cpu
(
ba_notif
->
scd_ssn
);
...
...
@@ -888,22 +884,26 @@ int iwl_mvm_rx_ba_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb,
freed
=
0
;
skb_queue_walk
(
&
reclaimed_skbs
,
skb
)
{
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
struct
ieee80211_hdr
*
hdr
=
(
void
*
)
skb
->
data
;
struct
ieee80211_tx_info
*
info
=
IEEE80211_SKB_CB
(
skb
);
if
(
ieee80211_is_data_qos
(
hdr
->
frame_control
))
freed
++
;
else
WARN_ON_ONCE
(
1
);
info
=
IEEE80211_SKB_CB
(
skb
);
iwl_trans_free_tx_cmd
(
mvm
->
trans
,
info
->
driver_data
[
1
]);
memset
(
&
info
->
status
,
0
,
sizeof
(
info
->
status
));
/* Packet was transmitted successfully, failures come as single
* frames because before failing a frame the firmware transmits
* it without aggregation at least once.
*/
info
->
flags
|=
IEEE80211_TX_STAT_ACK
;
if
(
freed
==
1
)
{
/* this is the first skb we deliver in this batch */
/* put the rate scaling data there */
info
=
IEEE80211_SKB_CB
(
skb
);
memset
(
&
info
->
status
,
0
,
sizeof
(
info
->
status
));
info
->
flags
|=
IEEE80211_TX_STAT_ACK
;
info
->
flags
|=
IEEE80211_TX_STAT_AMPDU
;
info
->
status
.
ampdu_ack_len
=
ba_notif
->
txed_2_done
;
info
->
status
.
ampdu_len
=
ba_notif
->
txed
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录