Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bug2833
cloud-kernel
提交
c2a3b233
cloud-kernel
项目概览
bug2833
/
cloud-kernel
与 Fork 源项目一致
Fork自
openanolis / cloud-kernel
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c2a3b233
编写于
5月 01, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
e4c576b9
c0d43990
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
49 addition
and
38 deletion
+49
-38
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+8
-0
drivers/net/wireless/libertas/scan.c
drivers/net/wireless/libertas/scan.c
+2
-1
include/linux/ieee80211.h
include/linux/ieee80211.h
+1
-1
net/mac80211/ieee80211_i.h
net/mac80211/ieee80211_i.h
+1
-1
net/mac80211/main.c
net/mac80211/main.c
+29
-18
net/mac80211/mesh.c
net/mac80211/mesh.c
+5
-12
net/mac80211/mesh.h
net/mac80211/mesh.h
+1
-1
net/mac80211/tkip.c
net/mac80211/tkip.c
+2
-4
未找到文件。
drivers/net/wireless/b43/main.c
浏览文件 @
c2a3b233
...
...
@@ -4326,6 +4326,14 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
err
=
-
EOPNOTSUPP
;
goto
err_powerdown
;
}
if
(
1
/* disable A-PHY */
)
{
/* FIXME: For now we disable the A-PHY on multi-PHY devices. */
if
(
dev
->
phy
.
type
!=
B43_PHYTYPE_N
)
{
have_2ghz_phy
=
1
;
have_5ghz_phy
=
0
;
}
}
dev
->
phy
.
gmode
=
have_2ghz_phy
;
tmp
=
dev
->
phy
.
gmode
?
B43_TMSLOW_GMODE
:
0
;
b43_wireless_core_reset
(
dev
,
tmp
);
...
...
drivers/net/wireless/libertas/scan.c
浏览文件 @
c2a3b233
...
...
@@ -298,7 +298,8 @@ static int lbs_do_scan(struct lbs_private *priv, uint8_t bsstype,
uint8_t
*
tlv
;
/* pointer into our current, growing TLV storage area */
lbs_deb_enter_args
(
LBS_DEB_SCAN
,
"bsstype %d, chanlist[].chan %d, chan_count %d"
,
bsstype
,
chan_list
[
0
].
channumber
,
chan_count
);
bsstype
,
chan_list
?
chan_list
[
0
].
channumber
:
-
1
,
chan_count
);
/* create the fixed part for scan command */
scan_cmd
=
kzalloc
(
MAX_SCAN_CFG_ALLOC
,
GFP_KERNEL
);
...
...
include/linux/ieee80211.h
浏览文件 @
c2a3b233
...
...
@@ -113,7 +113,7 @@ struct ieee80211_hdr {
struct
ieee80211s_hdr
{
u8
flags
;
u8
ttl
;
u8
seqnum
[
3
]
;
__le32
seqnum
;
u8
eaddr1
[
6
];
u8
eaddr2
[
6
];
u8
eaddr3
[
6
];
...
...
net/mac80211/ieee80211_i.h
浏览文件 @
c2a3b233
...
...
@@ -354,7 +354,7 @@ struct ieee80211_if_sta {
int
preq_queue_len
;
struct
mesh_stats
mshstats
;
struct
mesh_config
mshcfg
;
u
8
mesh_seqnum
[
3
]
;
u
32
mesh_seqnum
;
bool
accepting_plinks
;
#endif
u16
aid
;
...
...
net/mac80211/main.c
浏览文件 @
c2a3b233
...
...
@@ -255,22 +255,8 @@ static int ieee80211_open(struct net_device *dev)
switch
(
sdata
->
vif
.
type
)
{
case
IEEE80211_IF_TYPE_WDS
:
if
(
is_zero
_ether_addr
(
sdata
->
u
.
wds
.
remote_addr
))
if
(
!
is_valid
_ether_addr
(
sdata
->
u
.
wds
.
remote_addr
))
return
-
ENOLINK
;
/* Create STA entry for the WDS peer */
sta
=
sta_info_alloc
(
sdata
,
sdata
->
u
.
wds
.
remote_addr
,
GFP_KERNEL
);
if
(
!
sta
)
return
-
ENOMEM
;
sta
->
flags
|=
WLAN_STA_AUTHORIZED
;
res
=
sta_info_insert
(
sta
);
if
(
res
)
{
/* STA has been freed */
return
res
;
}
break
;
case
IEEE80211_IF_TYPE_VLAN
:
if
(
!
sdata
->
u
.
vlan
.
ap
)
...
...
@@ -337,10 +323,8 @@ static int ieee80211_open(struct net_device *dev)
conf
.
type
=
sdata
->
vif
.
type
;
conf
.
mac_addr
=
dev
->
dev_addr
;
res
=
local
->
ops
->
add_interface
(
local_to_hw
(
local
),
&
conf
);
if
(
res
&&
!
local
->
open_count
&&
local
->
ops
->
stop
)
local
->
ops
->
stop
(
local_to_hw
(
local
));
if
(
res
)
return
res
;
goto
err_stop
;
ieee80211_if_config
(
dev
);
ieee80211_reset_erp_info
(
dev
);
...
...
@@ -353,9 +337,29 @@ static int ieee80211_open(struct net_device *dev)
netif_carrier_on
(
dev
);
}
if
(
sdata
->
vif
.
type
==
IEEE80211_IF_TYPE_WDS
)
{
/* Create STA entry for the WDS peer */
sta
=
sta_info_alloc
(
sdata
,
sdata
->
u
.
wds
.
remote_addr
,
GFP_KERNEL
);
if
(
!
sta
)
{
res
=
-
ENOMEM
;
goto
err_del_interface
;
}
sta
->
flags
|=
WLAN_STA_AUTHORIZED
;
res
=
sta_info_insert
(
sta
);
if
(
res
)
{
/* STA has been freed */
goto
err_del_interface
;
}
}
if
(
local
->
open_count
==
0
)
{
res
=
dev_open
(
local
->
mdev
);
WARN_ON
(
res
);
if
(
res
)
goto
err_del_interface
;
tasklet_enable
(
&
local
->
tx_pending_tasklet
);
tasklet_enable
(
&
local
->
tasklet
);
}
...
...
@@ -390,6 +394,12 @@ static int ieee80211_open(struct net_device *dev)
netif_start_queue
(
dev
);
return
0
;
err_del_interface:
local
->
ops
->
remove_interface
(
local_to_hw
(
local
),
&
conf
);
err_stop:
if
(
!
local
->
open_count
&&
local
->
ops
->
stop
)
local
->
ops
->
stop
(
local_to_hw
(
local
));
return
res
;
}
static
int
ieee80211_stop
(
struct
net_device
*
dev
)
...
...
@@ -975,6 +985,7 @@ static int __ieee80211_if_config(struct net_device *dev,
conf
.
ssid_len
=
sdata
->
u
.
sta
.
ssid_len
;
}
else
if
(
ieee80211_vif_is_mesh
(
&
sdata
->
vif
))
{
conf
.
beacon
=
beacon
;
conf
.
beacon_control
=
control
;
ieee80211_start_mesh
(
dev
);
}
else
if
(
sdata
->
vif
.
type
==
IEEE80211_IF_TYPE_AP
)
{
conf
.
ssid
=
sdata
->
u
.
ap
.
ssid
;
...
...
net/mac80211/mesh.c
浏览文件 @
c2a3b233
...
...
@@ -8,6 +8,7 @@
* published by the Free Software Foundation.
*/
#include <asm/unaligned.h>
#include "ieee80211_i.h"
#include "mesh.h"
...
...
@@ -167,8 +168,8 @@ int mesh_rmc_check(u8 *sa, struct ieee80211s_hdr *mesh_hdr,
struct
rmc_entry
*
p
,
*
n
;
/* Don't care about endianness since only match matters */
memcpy
(
&
seqnum
,
mesh_hdr
->
seqnum
,
sizeof
(
mesh_hdr
->
seqnum
));
idx
=
mesh_hdr
->
seqnum
[
0
]
&
rmc
->
idx_mask
;
memcpy
(
&
seqnum
,
&
mesh_hdr
->
seqnum
,
sizeof
(
mesh_hdr
->
seqnum
));
idx
=
le32_to_cpu
(
mesh_hdr
->
seqnum
)
&
rmc
->
idx_mask
;
list_for_each_entry_safe
(
p
,
n
,
&
rmc
->
bucket
[
idx
].
list
,
list
)
{
++
entries
;
if
(
time_after
(
jiffies
,
p
->
exp_time
)
||
...
...
@@ -393,16 +394,8 @@ int ieee80211_new_mesh_header(struct ieee80211s_hdr *meshhdr,
{
meshhdr
->
flags
=
0
;
meshhdr
->
ttl
=
sdata
->
u
.
sta
.
mshcfg
.
dot11MeshTTL
;
meshhdr
->
seqnum
[
0
]
=
sdata
->
u
.
sta
.
mesh_seqnum
[
0
]
++
;
meshhdr
->
seqnum
[
1
]
=
sdata
->
u
.
sta
.
mesh_seqnum
[
1
];
meshhdr
->
seqnum
[
2
]
=
sdata
->
u
.
sta
.
mesh_seqnum
[
2
];
if
(
sdata
->
u
.
sta
.
mesh_seqnum
[
0
]
==
0
)
{
sdata
->
u
.
sta
.
mesh_seqnum
[
1
]
++
;
if
(
sdata
->
u
.
sta
.
mesh_seqnum
[
1
]
==
0
)
sdata
->
u
.
sta
.
mesh_seqnum
[
2
]
++
;
}
put_unaligned
(
cpu_to_le32
(
sdata
->
u
.
sta
.
mesh_seqnum
),
&
meshhdr
->
seqnum
);
sdata
->
u
.
sta
.
mesh_seqnum
++
;
return
5
;
}
...
...
net/mac80211/mesh.h
浏览文件 @
c2a3b233
...
...
@@ -140,7 +140,7 @@ struct rmc_entry {
struct
mesh_rmc
{
struct
rmc_entry
bucket
[
RMC_BUCKETS
];
u
8
idx_mask
;
u
32
idx_mask
;
};
...
...
net/mac80211/tkip.c
浏览文件 @
c2a3b233
...
...
@@ -230,10 +230,8 @@ void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
iv16
=
data
[
hdr_len
]
<<
8
;
iv16
+=
data
[
hdr_len
+
2
];
iv32
=
data
[
hdr_len
+
4
]
+
(
data
[
hdr_len
+
5
]
>>
8
)
+
(
data
[
hdr_len
+
6
]
>>
16
)
+
(
data
[
hdr_len
+
7
]
>>
24
);
iv32
=
data
[
hdr_len
+
4
]
|
(
data
[
hdr_len
+
5
]
<<
8
)
|
(
data
[
hdr_len
+
6
]
<<
16
)
|
(
data
[
hdr_len
+
7
]
<<
24
);
#ifdef CONFIG_TKIP_DEBUG
printk
(
KERN_DEBUG
"TKIP encrypt: iv16 = 0x%04x, iv32 = 0x%08x
\n
"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录