Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
ab3d59d2
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
ab3d59d2
编写于
10月 29, 2012
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Conflicts: drivers/net/wireless/mwifiex/cfg80211.c
上级
42d36074
8c6e3093
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
217 addition
and
130 deletion
+217
-130
drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
+82
-82
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hif_usb.c
+1
-0
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+2
-0
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+4
-0
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+1
-1
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/cfg80211.c
+5
-2
drivers/net/wireless/mwifiex/scan.c
drivers/net/wireless/mwifiex/scan.c
+5
-8
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2500usb.c
+1
-0
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+1
-0
drivers/net/wireless/rt2x00/rt73usb.c
drivers/net/wireless/rt2x00/rt73usb.c
+1
-0
drivers/net/wireless/rtlwifi/usb.c
drivers/net/wireless/rtlwifi/usb.c
+1
-1
include/net/cfg80211.h
include/net/cfg80211.h
+9
-0
net/mac80211/ibss.c
net/mac80211/ibss.c
+1
-1
net/mac80211/rx.c
net/mac80211/rx.c
+56
-18
net/mac80211/util.c
net/mac80211/util.c
+35
-7
net/wireless/core.c
net/wireless/core.c
+1
-2
net/wireless/reg.c
net/wireless/reg.c
+3
-2
net/wireless/util.c
net/wireless/util.c
+8
-6
未找到文件。
drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
浏览文件 @
ab3d59d2
...
...
@@ -534,107 +534,107 @@ static const u32 ar9300_2p2_baseband_core[][2] = {
static
const
u32
ar9300Modes_high_power_tx_gain_table_2p2
[][
5
]
=
{
/* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
{
0x0000a2dc
,
0x000
cfff0
,
0x000cfff
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000a2e0
,
0x000
f0000
,
0x000f0
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000a2e4
,
0x03f
00000
,
0x03f0
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000a2dc
,
0x000
33800
,
0x0003380
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000a2e0
,
0x000
3c000
,
0x0003c
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000a2e4
,
0x03f
c0000
,
0x03fc
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000a2e8
,
0x00000000
,
0x00000000
,
0x03ff0000
,
0x03ff0000
},
{
0x0000a410
,
0x000050d9
,
0x000050d9
,
0x000050d9
,
0x000050d9
},
{
0x0000a500
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a504
,
0x06000003
,
0x06000003
,
0x04000002
,
0x04000002
},
{
0x0000a508
,
0x0a000020
,
0x0a000020
,
0x08000004
,
0x08000004
},
{
0x0000a50c
,
0x10000023
,
0x10000023
,
0x0b000200
,
0x0b000200
},
{
0x0000a510
,
0x1
5000028
,
0x15000028
,
0x0f000202
,
0x0f000202
},
{
0x0000a514
,
0x1
b00002b
,
0x1b00002b
,
0x12000400
,
0x12000400
},
{
0x0000a518
,
0x
1f020028
,
0x1f020028
,
0x16000402
,
0x16000402
},
{
0x0000a51c
,
0x2
502002b
,
0x2502002b
,
0x19000404
,
0x19000404
},
{
0x0000a520
,
0x2
a04002a
,
0x2a04002a
,
0x1c000603
,
0x1c000603
},
{
0x0000a524
,
0x2
e06002a
,
0x2e06002a
,
0x21000a02
,
0x21000a02
},
{
0x0000a528
,
0x3
302202d
,
0x3302202d
,
0x25000a04
,
0x25000a04
},
{
0x0000a52c
,
0x3
804202c
,
0x3804202c
,
0x28000a20
,
0x28000a20
},
{
0x0000a530
,
0x3
c06202c
,
0x3c0620
2c
,
0x2c000e20
,
0x2c000e20
},
{
0x0000a534
,
0x4
108202d
,
0x4108202d
,
0x30000e22
,
0x30000e22
},
{
0x0000a538
,
0x4
506402d
,
0x4506402d
,
0x34000e24
,
0x34000e24
},
{
0x0000a53c
,
0x4
906222d
,
0x4906222d
,
0x38001640
,
0x38001640
},
{
0x0000a540
,
0x4
d062231
,
0x4d062231
,
0x3c001660
,
0x3c001660
},
{
0x0000a544
,
0x5
0082231
,
0x50082231
,
0x3f001861
,
0x3f001861
},
{
0x0000a548
,
0x5
608422e
,
0x5608422e
,
0x43001a81
,
0x43001a81
},
{
0x0000a54c
,
0x5
a08442e
,
0x5a08442e
,
0x47001a83
,
0x47001a83
},
{
0x0000a550
,
0x5
e0a4431
,
0x5e0a4431
,
0x4a001c84
,
0x4a001c84
},
{
0x0000a554
,
0x6
40a4432
,
0x640a443
2
,
0x4e001ce3
,
0x4e001ce3
},
{
0x0000a558
,
0x6
80a4434
,
0x680a4434
,
0x52001ce5
,
0x52001ce5
},
{
0x0000a55c
,
0x6
c0a6434
,
0x6c0a6434
,
0x56001ce9
,
0x56001ce9
},
{
0x0000a560
,
0x6
f0a6633
,
0x6f0a6633
,
0x5a001ceb
,
0x5a001ceb
},
{
0x0000a564
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a568
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a56c
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a570
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a574
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a578
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a57c
,
0x7
30c6634
,
0x730c6634
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a510
,
0x1
6000220
,
0x16000220
,
0x0f000202
,
0x0f000202
},
{
0x0000a514
,
0x1
c000223
,
0x1c000223
,
0x12000400
,
0x12000400
},
{
0x0000a518
,
0x
21002220
,
0x21002220
,
0x16000402
,
0x16000402
},
{
0x0000a51c
,
0x2
7002223
,
0x27002223
,
0x19000404
,
0x19000404
},
{
0x0000a520
,
0x2
b022220
,
0x2b022220
,
0x1c000603
,
0x1c000603
},
{
0x0000a524
,
0x2
f022222
,
0x2f022222
,
0x21000a02
,
0x21000a02
},
{
0x0000a528
,
0x3
4022225
,
0x34022225
,
0x25000a04
,
0x25000a04
},
{
0x0000a52c
,
0x3
a02222a
,
0x3a02222a
,
0x28000a20
,
0x28000a20
},
{
0x0000a530
,
0x3
e02222c
,
0x3e0222
2c
,
0x2c000e20
,
0x2c000e20
},
{
0x0000a534
,
0x4
202242a
,
0x4202242a
,
0x30000e22
,
0x30000e22
},
{
0x0000a538
,
0x4
702244a
,
0x4702244a
,
0x34000e24
,
0x34000e24
},
{
0x0000a53c
,
0x4
b02244c
,
0x4b02244c
,
0x38001640
,
0x38001640
},
{
0x0000a540
,
0x4
e02246c
,
0x4e02246c
,
0x3c001660
,
0x3c001660
},
{
0x0000a544
,
0x5
2022470
,
0x52022470
,
0x3f001861
,
0x3f001861
},
{
0x0000a548
,
0x5
5022490
,
0x55022490
,
0x43001a81
,
0x43001a81
},
{
0x0000a54c
,
0x5
9022492
,
0x59022492
,
0x47001a83
,
0x47001a83
},
{
0x0000a550
,
0x5
d022692
,
0x5d022692
,
0x4a001c84
,
0x4a001c84
},
{
0x0000a554
,
0x6
1022892
,
0x6102289
2
,
0x4e001ce3
,
0x4e001ce3
},
{
0x0000a558
,
0x6
5024890
,
0x65024890
,
0x52001ce5
,
0x52001ce5
},
{
0x0000a55c
,
0x6
9024892
,
0x69024892
,
0x56001ce9
,
0x56001ce9
},
{
0x0000a560
,
0x6
e024c92
,
0x6e024c92
,
0x5a001ceb
,
0x5a001ceb
},
{
0x0000a564
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a568
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a56c
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a570
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a574
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a578
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a57c
,
0x7
4026e92
,
0x74026e92
,
0x5d001eec
,
0x5d001eec
},
{
0x0000a580
,
0x00800000
,
0x00800000
,
0x00800000
,
0x00800000
},
{
0x0000a584
,
0x06800003
,
0x06800003
,
0x04800002
,
0x04800002
},
{
0x0000a588
,
0x0a800020
,
0x0a800020
,
0x08800004
,
0x08800004
},
{
0x0000a58c
,
0x10800023
,
0x10800023
,
0x0b800200
,
0x0b800200
},
{
0x0000a590
,
0x1
5800028
,
0x15800028
,
0x0f800202
,
0x0f800202
},
{
0x0000a594
,
0x1
b80002b
,
0x1b80002b
,
0x12800400
,
0x12800400
},
{
0x0000a598
,
0x
1f820028
,
0x1f820028
,
0x16800402
,
0x16800402
},
{
0x0000a59c
,
0x2
582002b
,
0x2582002b
,
0x19800404
,
0x19800404
},
{
0x0000a5a0
,
0x2
a84002a
,
0x2a84002a
,
0x1c800603
,
0x1c800603
},
{
0x0000a5a4
,
0x2
e86002a
,
0x2e86002a
,
0x21800a02
,
0x21800a02
},
{
0x0000a5a8
,
0x3
382202d
,
0x3382202d
,
0x25800a04
,
0x25800a04
},
{
0x0000a5ac
,
0x3
884202c
,
0x3884202c
,
0x28800a20
,
0x28800a20
},
{
0x0000a5b0
,
0x3
c86202c
,
0x3c8620
2c
,
0x2c800e20
,
0x2c800e20
},
{
0x0000a5b4
,
0x4
188202d
,
0x4188202d
,
0x30800e22
,
0x30800e22
},
{
0x0000a5b8
,
0x4
586402d
,
0x4586402d
,
0x34800e24
,
0x34800e24
},
{
0x0000a5bc
,
0x4
986222d
,
0x4986222d
,
0x38801640
,
0x38801640
},
{
0x0000a5c0
,
0x4
d862231
,
0x4d862231
,
0x3c801660
,
0x3c801660
},
{
0x0000a5c4
,
0x5
0882231
,
0x50882231
,
0x3f801861
,
0x3f801861
},
{
0x0000a5c8
,
0x5
688422e
,
0x5688422e
,
0x43801a81
,
0x43801a81
},
{
0x0000a5cc
,
0x5
a88442e
,
0x5a88442e
,
0x47801a83
,
0x47801a83
},
{
0x0000a5d0
,
0x5
e8a4431
,
0x5e8a4431
,
0x4a801c84
,
0x4a801c84
},
{
0x0000a5d4
,
0x6
48a4432
,
0x648a443
2
,
0x4e801ce3
,
0x4e801ce3
},
{
0x0000a5d8
,
0x6
88a4434
,
0x688a4434
,
0x52801ce5
,
0x52801ce5
},
{
0x0000a5dc
,
0x6
c8a6434
,
0x6c8a6434
,
0x56801ce9
,
0x56801ce9
},
{
0x0000a5e0
,
0x6
f8a6633
,
0x6f8a6633
,
0x5a801ceb
,
0x5a801ceb
},
{
0x0000a5e4
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5e8
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5ec
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f0
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f4
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f8
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5fc
,
0x7
38c6634
,
0x738c6634
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a590
,
0x1
6800220
,
0x16800220
,
0x0f800202
,
0x0f800202
},
{
0x0000a594
,
0x1
c800223
,
0x1c800223
,
0x12800400
,
0x12800400
},
{
0x0000a598
,
0x
21802220
,
0x21802220
,
0x16800402
,
0x16800402
},
{
0x0000a59c
,
0x2
7802223
,
0x27802223
,
0x19800404
,
0x19800404
},
{
0x0000a5a0
,
0x2
b822220
,
0x2b822220
,
0x1c800603
,
0x1c800603
},
{
0x0000a5a4
,
0x2
f822222
,
0x2f822222
,
0x21800a02
,
0x21800a02
},
{
0x0000a5a8
,
0x3
4822225
,
0x34822225
,
0x25800a04
,
0x25800a04
},
{
0x0000a5ac
,
0x3
a82222a
,
0x3a82222a
,
0x28800a20
,
0x28800a20
},
{
0x0000a5b0
,
0x3
e82222c
,
0x3e8222
2c
,
0x2c800e20
,
0x2c800e20
},
{
0x0000a5b4
,
0x4
282242a
,
0x4282242a
,
0x30800e22
,
0x30800e22
},
{
0x0000a5b8
,
0x4
782244a
,
0x4782244a
,
0x34800e24
,
0x34800e24
},
{
0x0000a5bc
,
0x4
b82244c
,
0x4b82244c
,
0x38801640
,
0x38801640
},
{
0x0000a5c0
,
0x4
e82246c
,
0x4e82246c
,
0x3c801660
,
0x3c801660
},
{
0x0000a5c4
,
0x5
2822470
,
0x52822470
,
0x3f801861
,
0x3f801861
},
{
0x0000a5c8
,
0x5
5822490
,
0x55822490
,
0x43801a81
,
0x43801a81
},
{
0x0000a5cc
,
0x5
9822492
,
0x59822492
,
0x47801a83
,
0x47801a83
},
{
0x0000a5d0
,
0x5
d822692
,
0x5d822692
,
0x4a801c84
,
0x4a801c84
},
{
0x0000a5d4
,
0x6
1822892
,
0x6182289
2
,
0x4e801ce3
,
0x4e801ce3
},
{
0x0000a5d8
,
0x6
5824890
,
0x65824890
,
0x52801ce5
,
0x52801ce5
},
{
0x0000a5dc
,
0x6
9824892
,
0x69824892
,
0x56801ce9
,
0x56801ce9
},
{
0x0000a5e0
,
0x6
e824c92
,
0x6e824c92
,
0x5a801ceb
,
0x5a801ceb
},
{
0x0000a5e4
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5e8
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5ec
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f0
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f4
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5f8
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a5fc
,
0x7
4826e92
,
0x74826e92
,
0x5d801eec
,
0x5d801eec
},
{
0x0000a600
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a604
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a608
,
0x0
1804601
,
0x01804601
,
0x00000000
,
0x00000000
},
{
0x0000a60c
,
0x0
1804601
,
0x01804601
,
0x00000000
,
0x00000000
},
{
0x0000a610
,
0x0
1804601
,
0x01804601
,
0x00000000
,
0x00000000
},
{
0x0000a614
,
0x0
1804601
,
0x01804601
,
0x01404000
,
0x01404000
},
{
0x0000a618
,
0x0
1804601
,
0x018046
01
,
0x01404501
,
0x01404501
},
{
0x0000a61c
,
0x0
1804601
,
0x01804601
,
0x02008501
,
0x02008501
},
{
0x0000a620
,
0x03
408d02
,
0x03408d02
,
0x0280ca03
,
0x0280ca03
},
{
0x0000a624
,
0x0
300cc03
,
0x0300cc03
,
0x03010c04
,
0x03010c04
},
{
0x0000a628
,
0x0
3410d04
,
0x03410d
04
,
0x04014c04
,
0x04014c04
},
{
0x0000a62c
,
0x0
3410d04
,
0x03410d
04
,
0x04015005
,
0x04015005
},
{
0x0000a630
,
0x0
3410d04
,
0x03410d
04
,
0x04015005
,
0x04015005
},
{
0x0000a634
,
0x0
3410d04
,
0x03410d
04
,
0x04015005
,
0x04015005
},
{
0x0000a638
,
0x0
3410d04
,
0x03410d
04
,
0x04015005
,
0x04015005
},
{
0x0000a63c
,
0x0
3410d04
,
0x03410d
04
,
0x04015005
,
0x04015005
},
{
0x0000b2dc
,
0x000
cfff0
,
0x000cfff
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000b2e0
,
0x000
f0000
,
0x000f0
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000b2e4
,
0x03f
00000
,
0x03f0
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000a608
,
0x0
0000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a60c
,
0x0
0000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a610
,
0x0
0000000
,
0x00000000
,
0x00000000
,
0x00000000
},
{
0x0000a614
,
0x0
2004000
,
0x02004000
,
0x01404000
,
0x01404000
},
{
0x0000a618
,
0x0
2004801
,
0x020048
01
,
0x01404501
,
0x01404501
},
{
0x0000a61c
,
0x0
2808a02
,
0x02808a02
,
0x02008501
,
0x02008501
},
{
0x0000a620
,
0x03
80ce03
,
0x0380ce03
,
0x0280ca03
,
0x0280ca03
},
{
0x0000a624
,
0x0
4411104
,
0x04411104
,
0x03010c04
,
0x03010c04
},
{
0x0000a628
,
0x0
4411104
,
0x044111
04
,
0x04014c04
,
0x04014c04
},
{
0x0000a62c
,
0x0
4411104
,
0x044111
04
,
0x04015005
,
0x04015005
},
{
0x0000a630
,
0x0
4411104
,
0x044111
04
,
0x04015005
,
0x04015005
},
{
0x0000a634
,
0x0
4411104
,
0x044111
04
,
0x04015005
,
0x04015005
},
{
0x0000a638
,
0x0
4411104
,
0x044111
04
,
0x04015005
,
0x04015005
},
{
0x0000a63c
,
0x0
4411104
,
0x044111
04
,
0x04015005
,
0x04015005
},
{
0x0000b2dc
,
0x000
33800
,
0x0003380
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000b2e0
,
0x000
3c000
,
0x0003c
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000b2e4
,
0x03f
c0000
,
0x03fc
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000b2e8
,
0x00000000
,
0x00000000
,
0x03ff0000
,
0x03ff0000
},
{
0x0000c2dc
,
0x000
cfff0
,
0x000cfff
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000c2e0
,
0x000
f0000
,
0x000f0
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000c2e4
,
0x03f
00000
,
0x03f0
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000c2dc
,
0x000
33800
,
0x0003380
0
,
0x03aaa352
,
0x03aaa352
},
{
0x0000c2e0
,
0x000
3c000
,
0x0003c
000
,
0x03ccc584
,
0x03ccc584
},
{
0x0000c2e4
,
0x03f
c0000
,
0x03fc
0000
,
0x03f0f800
,
0x03f0f800
},
{
0x0000c2e8
,
0x00000000
,
0x00000000
,
0x03ff0000
,
0x03ff0000
},
{
0x00016044
,
0x012492d4
,
0x012492d4
,
0x012492d4
,
0x012492d4
},
{
0x00016048
,
0x6
1200001
,
0x6120
0001
,
0x66480001
,
0x66480001
},
{
0x00016048
,
0x6
6480001
,
0x6648
0001
,
0x66480001
,
0x66480001
},
{
0x00016068
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
},
{
0x00016444
,
0x012492d4
,
0x012492d4
,
0x012492d4
,
0x012492d4
},
{
0x00016448
,
0x6
1200001
,
0x6120
0001
,
0x66480001
,
0x66480001
},
{
0x00016448
,
0x6
6480001
,
0x6648
0001
,
0x66480001
,
0x66480001
},
{
0x00016468
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
},
{
0x00016844
,
0x012492d4
,
0x012492d4
,
0x012492d4
,
0x012492d4
},
{
0x00016848
,
0x6
1200001
,
0x6120
0001
,
0x66480001
,
0x66480001
},
{
0x00016848
,
0x6
6480001
,
0x6648
0001
,
0x66480001
,
0x66480001
},
{
0x00016868
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
,
0x6db6db6c
},
};
...
...
drivers/net/wireless/ath/ath9k/hif_usb.c
浏览文件 @
ab3d59d2
...
...
@@ -38,6 +38,7 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
{
USB_DEVICE
(
0x04CA
,
0x4605
)
},
/* Liteon */
{
USB_DEVICE
(
0x040D
,
0x3801
)
},
/* VIA */
{
USB_DEVICE
(
0x0cf3
,
0xb003
)
},
/* Ubiquiti WifiStation Ext */
{
USB_DEVICE
(
0x0cf3
,
0xb002
)
},
/* Ubiquiti WifiStation */
{
USB_DEVICE
(
0x057c
,
0x8403
)
},
/* AVM FRITZ!WLAN 11N v2 USB */
{
USB_DEVICE
(
0x0cf3
,
0x7015
),
...
...
drivers/net/wireless/ath/ath9k/xmit.c
浏览文件 @
ab3d59d2
...
...
@@ -312,6 +312,7 @@ static struct ath_buf *ath_tx_get_buffer(struct ath_softc *sc)
}
bf
=
list_first_entry
(
&
sc
->
tx
.
txbuf
,
struct
ath_buf
,
list
);
bf
->
bf_next
=
NULL
;
list_del
(
&
bf
->
list
);
spin_unlock_bh
(
&
sc
->
tx
.
txbuflock
);
...
...
@@ -1774,6 +1775,7 @@ static void ath_tx_send_normal(struct ath_softc *sc, struct ath_txq *txq,
list_add_tail
(
&
bf
->
list
,
&
bf_head
);
bf
->
bf_state
.
bf_type
=
0
;
bf
->
bf_next
=
NULL
;
bf
->
bf_lastbf
=
bf
;
ath_tx_fill_desc
(
sc
,
bf
,
txq
,
fi
->
framelen
);
ath_tx_txqaddbuf
(
sc
,
txq
,
&
bf_head
,
false
);
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
ab3d59d2
...
...
@@ -5404,6 +5404,8 @@ static void b43_bcma_remove(struct bcma_device *core)
cancel_work_sync
(
&
wldev
->
restart_work
);
B43_WARN_ON
(
!
wl
);
if
(
!
wldev
->
fw
.
ucode
.
data
)
return
;
/* NULL if firmware never loaded */
if
(
wl
->
current_dev
==
wldev
&&
wl
->
hw_registred
)
{
b43_leds_stop
(
wldev
);
ieee80211_unregister_hw
(
wl
->
hw
);
...
...
@@ -5478,6 +5480,8 @@ static void b43_ssb_remove(struct ssb_device *sdev)
cancel_work_sync
(
&
wldev
->
restart_work
);
B43_WARN_ON
(
!
wl
);
if
(
!
wldev
->
fw
.
ucode
.
data
)
return
;
/* NULL if firmware never loaded */
if
(
wl
->
current_dev
==
wldev
&&
wl
->
hw_registred
)
{
b43_leds_stop
(
wldev
);
ieee80211_unregister_hw
(
wl
->
hw
);
...
...
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
浏览文件 @
ab3d59d2
...
...
@@ -3366,7 +3366,7 @@ brcmf_cfg80211_sched_scan_start(struct wiphy *wiphy,
if
(
!
request
||
!
request
->
n_ssids
||
!
request
->
n_match_sets
)
{
WL_ERR
(
"Invalid sched scan req!! n_ssids:%d
\n
"
,
request
->
n_ssids
);
request
?
request
->
n_ssids
:
0
);
return
-
EINVAL
;
}
...
...
drivers/net/wireless/mwifiex/cfg80211.c
浏览文件 @
ab3d59d2
...
...
@@ -1826,8 +1826,6 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
return
-
EBUSY
;
}
priv
->
scan_request
=
request
;
if
(
priv
->
user_scan_cfg
)
{
dev_err
(
priv
->
adapter
->
dev
,
"cmd: Scan already in process..
\n
"
);
return
-
EBUSY
;
...
...
@@ -1840,6 +1838,8 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
return
-
ENOMEM
;
}
priv
->
scan_request
=
request
;
priv
->
user_scan_cfg
->
num_ssids
=
request
->
n_ssids
;
priv
->
user_scan_cfg
->
ssid_list
=
request
->
ssids
;
...
...
@@ -1876,6 +1876,9 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
ret
=
mwifiex_scan_networks
(
priv
,
priv
->
user_scan_cfg
);
if
(
ret
)
{
dev_err
(
priv
->
adapter
->
dev
,
"scan failed: %d
\n
"
,
ret
);
priv
->
scan_request
=
NULL
;
kfree
(
priv
->
user_scan_cfg
);
priv
->
user_scan_cfg
=
NULL
;
return
ret
;
}
...
...
drivers/net/wireless/mwifiex/scan.c
浏览文件 @
ab3d59d2
...
...
@@ -1864,21 +1864,18 @@ static int mwifiex_scan_specific_ssid(struct mwifiex_private *priv,
struct
cfg80211_ssid
*
req_ssid
)
{
struct
mwifiex_adapter
*
adapter
=
priv
->
adapter
;
int
ret
=
0
;
int
ret
;
struct
mwifiex_user_scan_cfg
*
scan_cfg
;
if
(
!
req_ssid
)
return
-
1
;
if
(
adapter
->
scan_processing
)
{
dev_
dbg
(
adapter
->
dev
,
"cmd: Scan already in process...
\n
"
);
return
ret
;
dev_
err
(
adapter
->
dev
,
"cmd: Scan already in process...
\n
"
);
return
-
EBUSY
;
}
if
(
priv
->
scan_block
)
{
dev_
dbg
(
adapter
->
dev
,
dev_
err
(
adapter
->
dev
,
"cmd: Scan is blocked during association...
\n
"
);
return
ret
;
return
-
EBUSY
;
}
scan_cfg
=
kzalloc
(
sizeof
(
struct
mwifiex_user_scan_cfg
),
GFP_KERNEL
);
...
...
drivers/net/wireless/rt2x00/rt2500usb.c
浏览文件 @
ab3d59d2
...
...
@@ -1988,6 +1988,7 @@ static struct usb_driver rt2500usb_driver = {
.
disconnect
=
rt2x00usb_disconnect
,
.
suspend
=
rt2x00usb_suspend
,
.
resume
=
rt2x00usb_resume
,
.
reset_resume
=
rt2x00usb_resume
,
.
disable_hub_initiated_lpm
=
1
,
};
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
浏览文件 @
ab3d59d2
...
...
@@ -1282,6 +1282,7 @@ static struct usb_driver rt2800usb_driver = {
.
disconnect
=
rt2x00usb_disconnect
,
.
suspend
=
rt2x00usb_suspend
,
.
resume
=
rt2x00usb_resume
,
.
reset_resume
=
rt2x00usb_resume
,
.
disable_hub_initiated_lpm
=
1
,
};
...
...
drivers/net/wireless/rt2x00/rt73usb.c
浏览文件 @
ab3d59d2
...
...
@@ -2535,6 +2535,7 @@ static struct usb_driver rt73usb_driver = {
.
disconnect
=
rt2x00usb_disconnect
,
.
suspend
=
rt2x00usb_suspend
,
.
resume
=
rt2x00usb_resume
,
.
reset_resume
=
rt2x00usb_resume
,
.
disable_hub_initiated_lpm
=
1
,
};
...
...
drivers/net/wireless/rtlwifi/usb.c
浏览文件 @
ab3d59d2
...
...
@@ -673,7 +673,7 @@ static int rtl_usb_start(struct ieee80211_hw *hw)
set_hal_start
(
rtlhal
);
/* Start bulk IN */
_rtl_usb_receive
(
hw
);
err
=
_rtl_usb_receive
(
hw
);
}
return
err
;
...
...
include/net/cfg80211.h
浏览文件 @
ab3d59d2
...
...
@@ -2665,6 +2665,15 @@ unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb);
*/
unsigned
int
__attribute_const__
ieee80211_hdrlen
(
__le16
fc
);
/**
* ieee80211_get_mesh_hdrlen - get mesh extension header length
* @meshhdr: the mesh extension header, only the flags field
* (first byte) will be accessed
* Returns the length of the extension header, which is always at
* least 6 bytes and at most 18 if address 5 and 6 are present.
*/
unsigned
int
ieee80211_get_mesh_hdrlen
(
struct
ieee80211s_hdr
*
meshhdr
);
/**
* DOC: Data path helpers
*
...
...
net/mac80211/ibss.c
浏览文件 @
ab3d59d2
...
...
@@ -1110,7 +1110,7 @@ int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,
sdata
->
u
.
ibss
.
state
=
IEEE80211_IBSS_MLME_SEARCH
;
sdata
->
u
.
ibss
.
ibss_join_req
=
jiffies
;
memcpy
(
sdata
->
u
.
ibss
.
ssid
,
params
->
ssid
,
IEEE80211_MAX_SSID_LEN
);
memcpy
(
sdata
->
u
.
ibss
.
ssid
,
params
->
ssid
,
params
->
ssid_len
);
sdata
->
u
.
ibss
.
ssid_len
=
params
->
ssid_len
;
mutex_unlock
(
&
sdata
->
u
.
ibss
.
mtx
);
...
...
net/mac80211/rx.c
浏览文件 @
ab3d59d2
...
...
@@ -531,6 +531,11 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
if
(
ieee80211_is_action
(
hdr
->
frame_control
))
{
u8
category
;
/* make sure category field is present */
if
(
rx
->
skb
->
len
<
IEEE80211_MIN_ACTION_SIZE
)
return
RX_DROP_MONITOR
;
mgmt
=
(
struct
ieee80211_mgmt
*
)
hdr
;
category
=
mgmt
->
u
.
action
.
category
;
if
(
category
!=
WLAN_CATEGORY_MESH_ACTION
&&
...
...
@@ -883,14 +888,16 @@ ieee80211_rx_h_check(struct ieee80211_rx_data *rx)
*/
if
(
rx
->
sta
&&
rx
->
sdata
->
vif
.
type
==
NL80211_IFTYPE_STATION
&&
ieee80211_is_data_present
(
hdr
->
frame_control
))
{
u16
ethertype
;
u8
*
payload
;
payload
=
rx
->
skb
->
data
+
ieee80211_hdrlen
(
hdr
->
frame_control
);
ethertype
=
(
payload
[
6
]
<<
8
)
|
payload
[
7
];
if
(
cpu_to_be16
(
ethertype
)
==
rx
->
sdata
->
control_port_protocol
)
unsigned
int
hdrlen
;
__be16
ethertype
;
hdrlen
=
ieee80211_hdrlen
(
hdr
->
frame_control
);
if
(
rx
->
skb
->
len
<
hdrlen
+
8
)
return
RX_DROP_MONITOR
;
skb_copy_bits
(
rx
->
skb
,
hdrlen
+
6
,
&
ethertype
,
2
);
if
(
ethertype
==
rx
->
sdata
->
control_port_protocol
)
return
RX_CONTINUE
;
}
...
...
@@ -1467,11 +1474,14 @@ ieee80211_rx_h_defragment(struct ieee80211_rx_data *rx)
hdr
=
(
struct
ieee80211_hdr
*
)
rx
->
skb
->
data
;
fc
=
hdr
->
frame_control
;
if
(
ieee80211_is_ctl
(
fc
))
return
RX_CONTINUE
;
sc
=
le16_to_cpu
(
hdr
->
seq_ctrl
);
frag
=
sc
&
IEEE80211_SCTL_FRAG
;
if
(
likely
((
!
ieee80211_has_morefrags
(
fc
)
&&
frag
==
0
)
||
(
rx
->
skb
)
->
len
<
24
||
is_multicast_ether_addr
(
hdr
->
addr1
)))
{
/* not fragmented */
goto
out
;
...
...
@@ -1894,6 +1904,20 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
hdrlen
=
ieee80211_hdrlen
(
hdr
->
frame_control
);
/* make sure fixed part of mesh header is there, also checks skb len */
if
(
!
pskb_may_pull
(
rx
->
skb
,
hdrlen
+
6
))
return
RX_DROP_MONITOR
;
mesh_hdr
=
(
struct
ieee80211s_hdr
*
)
(
skb
->
data
+
hdrlen
);
/* make sure full mesh header is there, also checks skb len */
if
(
!
pskb_may_pull
(
rx
->
skb
,
hdrlen
+
ieee80211_get_mesh_hdrlen
(
mesh_hdr
)))
return
RX_DROP_MONITOR
;
/* reload pointers */
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
mesh_hdr
=
(
struct
ieee80211s_hdr
*
)
(
skb
->
data
+
hdrlen
);
/* frame is in RMC, don't forward */
...
...
@@ -1902,7 +1926,8 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
mesh_rmc_check
(
hdr
->
addr3
,
mesh_hdr
,
rx
->
sdata
))
return
RX_DROP_MONITOR
;
if
(
!
ieee80211_is_data
(
hdr
->
frame_control
))
if
(
!
ieee80211_is_data
(
hdr
->
frame_control
)
||
!
(
status
->
rx_flags
&
IEEE80211_RX_RA_MATCH
))
return
RX_CONTINUE
;
if
(
!
mesh_hdr
->
ttl
)
...
...
@@ -1916,9 +1941,12 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
if
(
is_multicast_ether_addr
(
hdr
->
addr1
))
{
mpp_addr
=
hdr
->
addr3
;
proxied_addr
=
mesh_hdr
->
eaddr1
;
}
else
{
}
else
if
(
mesh_hdr
->
flags
&
MESH_FLAGS_AE_A5_A6
)
{
/* has_a4 already checked in ieee80211_rx_mesh_check */
mpp_addr
=
hdr
->
addr4
;
proxied_addr
=
mesh_hdr
->
eaddr2
;
}
else
{
return
RX_DROP_MONITOR
;
}
rcu_read_lock
();
...
...
@@ -1946,12 +1974,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
}
skb_set_queue_mapping
(
skb
,
q
);
if
(
!
(
status
->
rx_flags
&
IEEE80211_RX_RA_MATCH
))
goto
out
;
if
(
!--
mesh_hdr
->
ttl
)
{
IEEE80211_IFSTA_MESH_CTR_INC
(
ifmsh
,
dropped_frames_ttl
);
return
RX_DROP_MONITOR
;
goto
out
;
}
if
(
!
ifmsh
->
mshcfg
.
dot11MeshForwarding
)
...
...
@@ -2358,6 +2383,10 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
}
break
;
case
WLAN_CATEGORY_SELF_PROTECTED
:
if
(
len
<
(
IEEE80211_MIN_ACTION_SIZE
+
sizeof
(
mgmt
->
u
.
action
.
u
.
self_prot
.
action_code
)))
break
;
switch
(
mgmt
->
u
.
action
.
u
.
self_prot
.
action_code
)
{
case
WLAN_SP_MESH_PEERING_OPEN
:
case
WLAN_SP_MESH_PEERING_CLOSE
:
...
...
@@ -2376,6 +2405,10 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
}
break
;
case
WLAN_CATEGORY_MESH_ACTION
:
if
(
len
<
(
IEEE80211_MIN_ACTION_SIZE
+
sizeof
(
mgmt
->
u
.
action
.
u
.
mesh_action
.
action_code
)))
break
;
if
(
!
ieee80211_vif_is_mesh
(
&
sdata
->
vif
))
break
;
if
(
mesh_action_is_path_sel
(
mgmt
)
&&
...
...
@@ -2918,10 +2951,15 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
if
(
ieee80211_is_data
(
fc
)
||
ieee80211_is_mgmt
(
fc
))
local
->
dot11ReceivedFragmentCount
++
;
if
(
ieee80211_is_mgmt
(
fc
))
err
=
skb_linearize
(
skb
);
else
if
(
ieee80211_is_mgmt
(
fc
))
{
/* drop frame if too short for header */
if
(
skb
->
len
<
ieee80211_hdrlen
(
fc
))
err
=
-
ENOBUFS
;
else
err
=
skb_linearize
(
skb
);
}
else
{
err
=
!
pskb_may_pull
(
skb
,
ieee80211_hdrlen
(
fc
));
}
if
(
err
)
{
dev_kfree_skb
(
skb
);
...
...
net/mac80211/util.c
浏览文件 @
ab3d59d2
...
...
@@ -643,13 +643,41 @@ u32 ieee802_11_parse_elems_crc(u8 *start, size_t len,
break
;
}
if
(
id
!=
WLAN_EID_VENDOR_SPECIFIC
&&
id
!=
WLAN_EID_QUIET
&&
test_bit
(
id
,
seen_elems
))
{
elems
->
parse_error
=
true
;
left
-=
elen
;
pos
+=
elen
;
continue
;
switch
(
id
)
{
case
WLAN_EID_SSID
:
case
WLAN_EID_SUPP_RATES
:
case
WLAN_EID_FH_PARAMS
:
case
WLAN_EID_DS_PARAMS
:
case
WLAN_EID_CF_PARAMS
:
case
WLAN_EID_TIM
:
case
WLAN_EID_IBSS_PARAMS
:
case
WLAN_EID_CHALLENGE
:
case
WLAN_EID_RSN
:
case
WLAN_EID_ERP_INFO
:
case
WLAN_EID_EXT_SUPP_RATES
:
case
WLAN_EID_HT_CAPABILITY
:
case
WLAN_EID_HT_OPERATION
:
case
WLAN_EID_VHT_CAPABILITY
:
case
WLAN_EID_VHT_OPERATION
:
case
WLAN_EID_MESH_ID
:
case
WLAN_EID_MESH_CONFIG
:
case
WLAN_EID_PEER_MGMT
:
case
WLAN_EID_PREQ
:
case
WLAN_EID_PREP
:
case
WLAN_EID_PERR
:
case
WLAN_EID_RANN
:
case
WLAN_EID_CHANNEL_SWITCH
:
case
WLAN_EID_EXT_CHANSWITCH_ANN
:
case
WLAN_EID_COUNTRY
:
case
WLAN_EID_PWR_CONSTRAINT
:
case
WLAN_EID_TIMEOUT_INTERVAL
:
if
(
test_bit
(
id
,
seen_elems
))
{
elems
->
parse_error
=
true
;
left
-=
elen
;
pos
+=
elen
;
continue
;
}
break
;
}
if
(
calc_crc
&&
id
<
64
&&
(
filter
&
(
1ULL
<<
id
)))
...
...
net/wireless/core.c
浏览文件 @
ab3d59d2
...
...
@@ -529,8 +529,7 @@ int wiphy_register(struct wiphy *wiphy)
for
(
i
=
0
;
i
<
sband
->
n_channels
;
i
++
)
{
sband
->
channels
[
i
].
orig_flags
=
sband
->
channels
[
i
].
flags
;
sband
->
channels
[
i
].
orig_mag
=
sband
->
channels
[
i
].
max_antenna_gain
;
sband
->
channels
[
i
].
orig_mag
=
INT_MAX
;
sband
->
channels
[
i
].
orig_mpwr
=
sband
->
channels
[
i
].
max_power
;
sband
->
channels
[
i
].
band
=
band
;
...
...
net/wireless/reg.c
浏览文件 @
ab3d59d2
...
...
@@ -908,7 +908,7 @@ static void handle_channel(struct wiphy *wiphy,
map_regdom_flags
(
reg_rule
->
flags
)
|
bw_flags
;
chan
->
max_antenna_gain
=
chan
->
orig_mag
=
(
int
)
MBI_TO_DBI
(
power_rule
->
max_antenna_gain
);
chan
->
max_power
=
chan
->
orig_mpwr
=
chan
->
max_
reg_power
=
chan
->
max_
power
=
chan
->
orig_mpwr
=
(
int
)
MBM_TO_DBM
(
power_rule
->
max_eirp
);
return
;
}
...
...
@@ -1331,7 +1331,8 @@ static void handle_channel_custom(struct wiphy *wiphy,
chan
->
flags
|=
map_regdom_flags
(
reg_rule
->
flags
)
|
bw_flags
;
chan
->
max_antenna_gain
=
(
int
)
MBI_TO_DBI
(
power_rule
->
max_antenna_gain
);
chan
->
max_power
=
(
int
)
MBM_TO_DBM
(
power_rule
->
max_eirp
);
chan
->
max_reg_power
=
chan
->
max_power
=
(
int
)
MBM_TO_DBM
(
power_rule
->
max_eirp
);
}
static
void
handle_band_custom
(
struct
wiphy
*
wiphy
,
enum
ieee80211_band
band
,
...
...
net/wireless/util.c
浏览文件 @
ab3d59d2
...
...
@@ -311,23 +311,21 @@ unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb)
}
EXPORT_SYMBOL
(
ieee80211_get_hdrlen_from_skb
);
static
int
ieee80211_get_mesh_hdrlen
(
struct
ieee80211s_hdr
*
meshhdr
)
unsigned
int
ieee80211_get_mesh_hdrlen
(
struct
ieee80211s_hdr
*
meshhdr
)
{
int
ae
=
meshhdr
->
flags
&
MESH_FLAGS_AE
;
/*
7.1.3.5a.2
*/
/*
802.11-2012, 8.2.4.7.3
*/
switch
(
ae
)
{
default:
case
0
:
return
6
;
case
MESH_FLAGS_AE_A4
:
return
12
;
case
MESH_FLAGS_AE_A5_A6
:
return
18
;
case
(
MESH_FLAGS_AE_A4
|
MESH_FLAGS_AE_A5_A6
):
return
24
;
default:
return
6
;
}
}
EXPORT_SYMBOL
(
ieee80211_get_mesh_hdrlen
);
int
ieee80211_data_to_8023
(
struct
sk_buff
*
skb
,
const
u8
*
addr
,
enum
nl80211_iftype
iftype
)
...
...
@@ -375,6 +373,8 @@ int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
/* make sure meshdr->flags is on the linear part */
if
(
!
pskb_may_pull
(
skb
,
hdrlen
+
1
))
return
-
1
;
if
(
meshdr
->
flags
&
MESH_FLAGS_AE_A4
)
return
-
1
;
if
(
meshdr
->
flags
&
MESH_FLAGS_AE_A5_A6
)
{
skb_copy_bits
(
skb
,
hdrlen
+
offsetof
(
struct
ieee80211s_hdr
,
eaddr1
),
...
...
@@ -399,6 +399,8 @@ int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
/* make sure meshdr->flags is on the linear part */
if
(
!
pskb_may_pull
(
skb
,
hdrlen
+
1
))
return
-
1
;
if
(
meshdr
->
flags
&
MESH_FLAGS_AE_A5_A6
)
return
-
1
;
if
(
meshdr
->
flags
&
MESH_FLAGS_AE_A4
)
skb_copy_bits
(
skb
,
hdrlen
+
offsetof
(
struct
ieee80211s_hdr
,
eaddr1
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录