Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
874239f5
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
874239f5
编写于
2月 01, 2012
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
上级
b0302aba
b49ba04a
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
58 addition
and
23 deletion
+58
-23
drivers/net/wireless/b43/Kconfig
drivers/net/wireless/b43/Kconfig
+6
-0
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+2
-0
drivers/net/wireless/brcm80211/brcmsmac/main.c
drivers/net/wireless/brcm80211/brcmsmac/main.c
+9
-1
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
+2
-2
net/mac80211/debugfs_key.c
net/mac80211/debugfs_key.c
+4
-3
net/mac80211/ibss.c
net/mac80211/ibss.c
+1
-0
net/mac80211/iface.c
net/mac80211/iface.c
+1
-0
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_hwmp.c
+4
-4
net/mac80211/mesh_plink.c
net/mac80211/mesh_plink.c
+2
-2
net/mac80211/mlme.c
net/mac80211/mlme.c
+27
-11
未找到文件。
drivers/net/wireless/b43/Kconfig
浏览文件 @
874239f5
...
...
@@ -31,6 +31,12 @@ config B43_BCMA
depends on B43 && BCMA
default y
config B43_BCMA_EXTRA
bool "Hardware support that overlaps with the brcmsmac driver"
depends on B43_BCMA
default n if BRCMSMAC || BRCMSMAC_MODULE
default y
config B43_SSB
bool
depends on B43 && SSB
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
874239f5
...
...
@@ -116,8 +116,10 @@ MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO");
#ifdef CONFIG_B43_BCMA
static
const
struct
bcma_device_id
b43_bcma_tbl
[]
=
{
BCMA_CORE
(
BCMA_MANUF_BCM
,
BCMA_CORE_80211
,
0x11
,
BCMA_ANY_CLASS
),
#ifdef CONFIG_B43_BCMA_EXTRA
BCMA_CORE
(
BCMA_MANUF_BCM
,
BCMA_CORE_80211
,
0x17
,
BCMA_ANY_CLASS
),
BCMA_CORE
(
BCMA_MANUF_BCM
,
BCMA_CORE_80211
,
0x18
,
BCMA_ANY_CLASS
),
#endif
BCMA_CORE
(
BCMA_MANUF_BCM
,
BCMA_CORE_80211
,
0x1D
,
BCMA_ANY_CLASS
),
BCMA_CORETABLE_END
};
...
...
drivers/net/wireless/brcm80211/brcmsmac/main.c
浏览文件 @
874239f5
...
...
@@ -7967,13 +7967,21 @@ int brcms_c_get_curband(struct brcms_c_info *wlc)
void
brcms_c_wait_for_tx_completion
(
struct
brcms_c_info
*
wlc
,
bool
drop
)
{
int
timeout
=
20
;
/* flush packet queue when requested */
if
(
drop
)
brcmu_pktq_flush
(
&
wlc
->
pkt_queue
->
q
,
false
,
NULL
,
NULL
);
/* wait for queue and DMA fifos to run dry */
while
(
!
pktq_empty
(
&
wlc
->
pkt_queue
->
q
)
||
brcms_txpktpendtot
(
wlc
)
>
0
)
while
(
!
pktq_empty
(
&
wlc
->
pkt_queue
->
q
)
||
brcms_txpktpendtot
(
wlc
)
>
0
)
{
brcms_msleep
(
wlc
->
wl
,
1
);
if
(
--
timeout
==
0
)
break
;
}
WARN_ON_ONCE
(
timeout
==
0
);
}
void
brcms_c_set_beacon_listen_interval
(
struct
brcms_c_info
*
wlc
,
u8
interval
)
...
...
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
浏览文件 @
874239f5
...
...
@@ -972,11 +972,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans)
}
#endif
spin_unlock_irqrestore
(
&
trans
->
shrd
->
lock
,
flags
);
/* saved interrupt in inta variable now we can reset trans_pcie->inta */
trans_pcie
->
inta
=
0
;
spin_unlock_irqrestore
(
&
trans
->
shrd
->
lock
,
flags
);
/* Now service all interrupt bits discovered above. */
if
(
inta
&
CSR_INT_BIT_HW_ERR
)
{
IWL_ERR
(
trans
,
"Hardware error detected. Restarting.
\n
"
);
...
...
net/mac80211/debugfs_key.c
浏览文件 @
874239f5
...
...
@@ -225,9 +225,9 @@ KEY_OPS(key);
key, &key_##name##_ops);
void
ieee80211_debugfs_key_add
(
struct
ieee80211_key
*
key
)
{
{
static
int
keycount
;
char
buf
[
5
0
];
char
buf
[
10
0
];
struct
sta_info
*
sta
;
if
(
!
key
->
local
->
debugfs
.
keys
)
...
...
@@ -244,7 +244,8 @@ void ieee80211_debugfs_key_add(struct ieee80211_key *key)
sta
=
key
->
sta
;
if
(
sta
)
{
sprintf
(
buf
,
"../../stations/%pM"
,
sta
->
sta
.
addr
);
sprintf
(
buf
,
"../../netdev:%s/stations/%pM"
,
sta
->
sdata
->
name
,
sta
->
sta
.
addr
);
key
->
debugfs
.
stalink
=
debugfs_create_symlink
(
"station"
,
key
->
debugfs
.
dir
,
buf
);
}
...
...
net/mac80211/ibss.c
浏览文件 @
874239f5
...
...
@@ -81,6 +81,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
sdata
->
drop_unencrypted
=
capability
&
WLAN_CAPABILITY_PRIVACY
?
1
:
0
;
local
->
oper_channel
=
chan
;
channel_type
=
ifibss
->
channel_type
;
if
(
channel_type
>
NL80211_CHAN_HT20
&&
!
cfg80211_can_beacon_sec_chan
(
local
->
hw
.
wiphy
,
chan
,
channel_type
))
...
...
net/mac80211/iface.c
浏览文件 @
874239f5
...
...
@@ -1321,6 +1321,7 @@ u32 __ieee80211_recalc_idle(struct ieee80211_local *local)
continue
;
}
/* count everything else */
sdata
->
vif
.
bss_conf
.
idle
=
false
;
count
++
;
}
...
...
net/mac80211/mesh_hwmp.c
浏览文件 @
874239f5
...
...
@@ -119,12 +119,12 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
int
hdr_len
=
offsetof
(
struct
ieee80211_mgmt
,
u
.
action
.
u
.
mesh_action
)
+
sizeof
(
mgmt
->
u
.
action
.
u
.
mesh_action
);
skb
=
dev_alloc_skb
(
local
->
hw
.
extra_
tx_headroom
+
skb
=
dev_alloc_skb
(
local
->
tx_headroom
+
hdr_len
+
2
+
37
);
/* max HWMP IE */
if
(
!
skb
)
return
-
1
;
skb_reserve
(
skb
,
local
->
hw
.
extra_
tx_headroom
);
skb_reserve
(
skb
,
local
->
tx_headroom
);
mgmt
=
(
struct
ieee80211_mgmt
*
)
skb_put
(
skb
,
hdr_len
);
memset
(
mgmt
,
0
,
hdr_len
);
mgmt
->
frame_control
=
cpu_to_le16
(
IEEE80211_FTYPE_MGMT
|
...
...
@@ -250,12 +250,12 @@ int mesh_path_error_tx(u8 ttl, u8 *target, __le32 target_sn,
if
(
time_before
(
jiffies
,
ifmsh
->
next_perr
))
return
-
EAGAIN
;
skb
=
dev_alloc_skb
(
local
->
hw
.
extra_
tx_headroom
+
skb
=
dev_alloc_skb
(
local
->
tx_headroom
+
hdr_len
+
2
+
15
/* PERR IE */
);
if
(
!
skb
)
return
-
1
;
skb_reserve
(
skb
,
local
->
tx_headroom
+
local
->
hw
.
extra_tx_headroom
);
skb_reserve
(
skb
,
local
->
tx_headroom
);
mgmt
=
(
struct
ieee80211_mgmt
*
)
skb_put
(
skb
,
hdr_len
);
memset
(
mgmt
,
0
,
hdr_len
);
mgmt
->
frame_control
=
cpu_to_le16
(
IEEE80211_FTYPE_MGMT
|
...
...
net/mac80211/mesh_plink.c
浏览文件 @
874239f5
...
...
@@ -172,7 +172,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
int
hdr_len
=
offsetof
(
struct
ieee80211_mgmt
,
u
.
action
.
u
.
self_prot
)
+
sizeof
(
mgmt
->
u
.
action
.
u
.
self_prot
);
skb
=
dev_alloc_skb
(
local
->
hw
.
extra_
tx_headroom
+
skb
=
dev_alloc_skb
(
local
->
tx_headroom
+
hdr_len
+
2
+
/* capability info */
2
+
/* AID */
...
...
@@ -186,7 +186,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
sdata
->
u
.
mesh
.
ie_len
);
if
(
!
skb
)
return
-
1
;
skb_reserve
(
skb
,
local
->
hw
.
extra_
tx_headroom
);
skb_reserve
(
skb
,
local
->
tx_headroom
);
mgmt
=
(
struct
ieee80211_mgmt
*
)
skb_put
(
skb
,
hdr_len
);
memset
(
mgmt
,
0
,
hdr_len
);
mgmt
->
frame_control
=
cpu_to_le16
(
IEEE80211_FTYPE_MGMT
|
...
...
net/mac80211/mlme.c
浏览文件 @
874239f5
...
...
@@ -2759,7 +2759,6 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
{
struct
ieee80211_local
*
local
=
sdata
->
local
;
struct
ieee80211_if_managed
*
ifmgd
=
&
sdata
->
u
.
mgd
;
struct
ieee80211_work
*
wk
;
u8
bssid
[
ETH_ALEN
];
bool
assoc_bss
=
false
;
...
...
@@ -2772,30 +2771,47 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
assoc_bss
=
true
;
}
else
{
bool
not_auth_yet
=
false
;
struct
ieee80211_work
*
tmp
,
*
wk
=
NULL
;
mutex_unlock
(
&
ifmgd
->
mtx
);
mutex_lock
(
&
local
->
mtx
);
list_for_each_entry
(
wk
,
&
local
->
work_list
,
list
)
{
if
(
wk
->
sdata
!=
sdata
)
list_for_each_entry
(
tmp
,
&
local
->
work_list
,
list
)
{
if
(
tmp
->
sdata
!=
sdata
)
continue
;
if
(
wk
->
type
!=
IEEE80211_WORK_DIRECT_PROBE
&&
wk
->
type
!=
IEEE80211_WORK_AUTH
&&
wk
->
type
!=
IEEE80211_WORK_ASSOC
&&
wk
->
type
!=
IEEE80211_WORK_ASSOC_BEACON_WAIT
)
if
(
tmp
->
type
!=
IEEE80211_WORK_DIRECT_PROBE
&&
tmp
->
type
!=
IEEE80211_WORK_AUTH
&&
tmp
->
type
!=
IEEE80211_WORK_ASSOC
&&
tmp
->
type
!=
IEEE80211_WORK_ASSOC_BEACON_WAIT
)
continue
;
if
(
memcmp
(
req
->
bss
->
bssid
,
wk
->
filter_ta
,
ETH_ALEN
))
if
(
memcmp
(
req
->
bss
->
bssid
,
tmp
->
filter_ta
,
ETH_ALEN
))
continue
;
not_auth_yet
=
wk
->
type
==
IEEE80211_WORK_DIRECT_PROBE
;
list_del_rcu
(
&
wk
->
list
);
free_work
(
wk
);
not_auth_yet
=
tmp
->
type
==
IEEE80211_WORK_DIRECT_PROBE
;
list_del_rcu
(
&
tmp
->
list
);
synchronize_rcu
();
wk
=
tmp
;
break
;
}
mutex_unlock
(
&
local
->
mtx
);
if
(
wk
&&
wk
->
type
==
IEEE80211_WORK_ASSOC
)
{
/* clean up dummy sta & TX sync */
sta_info_destroy_addr
(
wk
->
sdata
,
wk
->
filter_ta
);
if
(
wk
->
assoc
.
synced
)
drv_finish_tx_sync
(
local
,
wk
->
sdata
,
wk
->
filter_ta
,
IEEE80211_TX_SYNC_ASSOC
);
}
else
if
(
wk
&&
wk
->
type
==
IEEE80211_WORK_AUTH
)
{
if
(
wk
->
probe_auth
.
synced
)
drv_finish_tx_sync
(
local
,
wk
->
sdata
,
wk
->
filter_ta
,
IEEE80211_TX_SYNC_AUTH
);
}
kfree
(
wk
);
/*
* If somebody requests authentication and we haven't
* sent out an auth frame yet there's no need to send
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录