Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e7582561
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
6
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看板
提交
e7582561
编写于
10月 06, 2005
作者:
B
Ben Cahill
提交者:
James Ketrenos
11月 07, 2005
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes missed beacon logic in relation to on-network AP roaming.
Signed-off-by:
N
James Ketrenos
<
jketreno@linux.intel.com
>
上级
8935f39e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
7 deletion
+23
-7
drivers/net/wireless/ipw2200.c
drivers/net/wireless/ipw2200.c
+20
-7
drivers/net/wireless/ipw2200.h
drivers/net/wireless/ipw2200.h
+3
-0
未找到文件。
drivers/net/wireless/ipw2200.c
浏览文件 @
e7582561
...
...
@@ -4082,6 +4082,11 @@ static void ipw_bg_gather_stats(void *data)
up
(
&
priv
->
sem
);
}
/* Missed beacon behavior:
* 1st missed -> roaming_threshold, just wait, don't do any scan/roam.
* roaming_threshold -> disassociate_threshold, scan and roam for better signal.
* Above disassociate threshold, give up and stop scanning.
* Roaming is disabled if disassociate_threshold <= roaming_threshold */
static
inline
void
ipw_handle_missed_beacon
(
struct
ipw_priv
*
priv
,
int
missed_count
)
{
...
...
@@ -4116,9 +4121,12 @@ static inline void ipw_handle_missed_beacon(struct ipw_priv *priv,
return
;
}
if
(
missed_count
>
priv
->
roaming_threshold
)
{
if
(
missed_count
>
priv
->
roaming_threshold
&&
missed_count
<=
priv
->
disassociate_threshold
)
{
/* If we are not already roaming, set the ROAM
* bit in the status and kick off a scan */
* bit in the status and kick off a scan.
* This can happen several times before we reach
* disassociate_threshold. */
IPW_DEBUG
(
IPW_DL_NOTIF
|
IPW_DL_STATE
,
"Missed beacon: %d - initiate "
"roaming
\n
"
,
missed_count
);
...
...
@@ -4480,11 +4488,16 @@ static inline void ipw_rx_notification(struct ipw_priv *priv,
STATUS_DISASSOCIATING
)))
queue_work
(
priv
->
workqueue
,
&
priv
->
associate
);
else
if
(
priv
->
status
&
STATUS_ROAMING
)
{
/* If a scan completed and we are in roam mode, then
* the scan that completed was the one requested as a
* result of entering roam... so, schedule the
* roam work */
queue_work
(
priv
->
workqueue
,
&
priv
->
roam
);
if
(
x
->
status
==
SCAN_COMPLETED_STATUS_COMPLETE
)
/* If a scan completed and we are in roam mode, then
* the scan that completed was the one requested as a
* result of entering roam... so, schedule the
* roam work */
queue_work
(
priv
->
workqueue
,
&
priv
->
roam
);
else
/* Don't schedule if we aborted the scan */
priv
->
status
&=
~
STATUS_ROAMING
;
}
else
if
(
priv
->
status
&
STATUS_SCAN_PENDING
)
queue_work
(
priv
->
workqueue
,
&
priv
->
request_scan
);
...
...
drivers/net/wireless/ipw2200.h
浏览文件 @
e7582561
...
...
@@ -590,6 +590,9 @@ struct notif_channel_result {
u8
uReserved
;
}
__attribute__
((
packed
));
#define SCAN_COMPLETED_STATUS_COMPLETE 1
#define SCAN_COMPLETED_STATUS_ABORTED 2
struct
notif_scan_complete
{
u8
scan_type
;
u8
num_channels
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录