Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
3be3fdb5
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3be3fdb5
编写于
6月 28, 2011
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-tx.c
上级
77b7023a
5ee0a58d
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
75 addition
and
30 deletion
+75
-30
drivers/net/wireless/iwlwifi/iwl-1000.c
drivers/net/wireless/iwlwifi/iwl-1000.c
+3
-2
drivers/net/wireless/iwlwifi/iwl-2000.c
drivers/net/wireless/iwlwifi/iwl-2000.c
+4
-3
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-5000.c
+3
-2
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
+5
-4
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.c
+2
-1
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwlwifi/iwl-tx.c
+11
-13
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/cfg80211.c
+2
-0
drivers/net/wireless/mwl8k.c
drivers/net/wireless/mwl8k.c
+3
-1
drivers/net/wireless/rtlwifi/pci.c
drivers/net/wireless/rtlwifi/pci.c
+12
-1
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+20
-0
include/net/cfg80211.h
include/net/cfg80211.h
+1
-1
net/mac80211/wpa.c
net/mac80211/wpa.c
+7
-1
net/wireless/nl80211.c
net/wireless/nl80211.c
+2
-1
未找到文件。
drivers/net/wireless/iwlwifi/iwl-1000.c
浏览文件 @
3be3fdb5
...
...
@@ -34,6 +34,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-dev.h"
...
...
@@ -53,10 +54,10 @@
#define IWL100_UCODE_API_MIN 5
#define IWL1000_FW_PRE "iwlwifi-1000-"
#define IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE
#api
".ucode"
#define IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE
__stringify(api)
".ucode"
#define IWL100_FW_PRE "iwlwifi-100-"
#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE
#api
".ucode"
#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE
__stringify(api)
".ucode"
/*
...
...
drivers/net/wireless/iwlwifi/iwl-2000.c
浏览文件 @
3be3fdb5
...
...
@@ -34,6 +34,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-dev.h"
...
...
@@ -56,13 +57,13 @@
#define IWL105_UCODE_API_MIN 5
#define IWL2030_FW_PRE "iwlwifi-2030-"
#define IWL2030_MODULE_FIRMWARE(api) IWL2030_FW_PRE
#api
".ucode"
#define IWL2030_MODULE_FIRMWARE(api) IWL2030_FW_PRE
__stringify(api)
".ucode"
#define IWL2000_FW_PRE "iwlwifi-2000-"
#define IWL2000_MODULE_FIRMWARE(api) IWL2000_FW_PRE
#api
".ucode"
#define IWL2000_MODULE_FIRMWARE(api) IWL2000_FW_PRE
__stringify(api)
".ucode"
#define IWL105_FW_PRE "iwlwifi-105-"
#define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE
#api
".ucode"
#define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE
__stringify(api)
".ucode"
static
void
iwl2000_set_ct_threshold
(
struct
iwl_priv
*
priv
)
{
...
...
drivers/net/wireless/iwlwifi/iwl-5000.c
浏览文件 @
3be3fdb5
...
...
@@ -35,6 +35,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-dev.h"
...
...
@@ -55,10 +56,10 @@
#define IWL5150_UCODE_API_MIN 1
#define IWL5000_FW_PRE "iwlwifi-5000-"
#define IWL5000_MODULE_FIRMWARE(api) IWL5000_FW_PRE
#api
".ucode"
#define IWL5000_MODULE_FIRMWARE(api) IWL5000_FW_PRE
__stringify(api)
".ucode"
#define IWL5150_FW_PRE "iwlwifi-5150-"
#define IWL5150_MODULE_FIRMWARE(api) IWL5150_FW_PRE
#api
".ucode"
#define IWL5150_MODULE_FIRMWARE(api) IWL5150_FW_PRE
__stringify(api)
".ucode"
/* NIC configuration for 5000 series */
static
void
iwl5000_nic_config
(
struct
iwl_priv
*
priv
)
...
...
drivers/net/wireless/iwlwifi/iwl-6000.c
浏览文件 @
3be3fdb5
...
...
@@ -34,6 +34,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-dev.h"
...
...
@@ -56,16 +57,16 @@
#define IWL6000G2_UCODE_API_MIN 4
#define IWL6000_FW_PRE "iwlwifi-6000-"
#define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE
#api
".ucode"
#define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE
__stringify(api)
".ucode"
#define IWL6050_FW_PRE "iwlwifi-6050-"
#define IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE
#api
".ucode"
#define IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE
__stringify(api)
".ucode"
#define IWL6005_FW_PRE "iwlwifi-6000g2a-"
#define IWL6005_MODULE_FIRMWARE(api) IWL6005_FW_PRE
#api
".ucode"
#define IWL6005_MODULE_FIRMWARE(api) IWL6005_FW_PRE
__stringify(api)
".ucode"
#define IWL6030_FW_PRE "iwlwifi-6000g2b-"
#define IWL6030_MODULE_FIRMWARE(api) IWL6030_FW_PRE
#api
".ucode"
#define IWL6030_MODULE_FIRMWARE(api) IWL6030_FW_PRE
__stringify(api)
".ucode"
static
void
iwl6000_set_ct_threshold
(
struct
iwl_priv
*
priv
)
{
...
...
drivers/net/wireless/iwlwifi/iwl-core.c
浏览文件 @
3be3fdb5
...
...
@@ -1704,6 +1704,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct
iwl_rxon_context
*
ctx
=
iwl_rxon_ctx_from_vif
(
vif
);
struct
iwl_rxon_context
*
bss_ctx
=
&
priv
->
contexts
[
IWL_RXON_CTX_BSS
];
struct
iwl_rxon_context
*
tmp
;
enum
nl80211_iftype
newviftype
=
newtype
;
u32
interface_modes
;
int
err
;
...
...
@@ -1759,7 +1760,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
/* success */
iwl_teardown_interface
(
priv
,
vif
,
true
);
vif
->
type
=
newtype
;
vif
->
type
=
new
vif
type
;
vif
->
p2p
=
newp2p
;
err
=
iwl_setup_interface
(
priv
,
ctx
);
WARN_ON
(
err
);
...
...
drivers/net/wireless/iwlwifi/iwl-tx.c
浏览文件 @
3be3fdb5
...
...
@@ -126,7 +126,7 @@ static inline u8 iwl_tfd_get_num_tbs(struct iwl_tfd *tfd)
}
static
void
iwlagn_unmap_tfd
(
struct
iwl_priv
*
priv
,
struct
iwl_cmd_meta
*
meta
,
struct
iwl_tfd
*
tfd
)
struct
iwl_tfd
*
tfd
,
enum
dma_data_direction
dma_dir
)
{
int
i
;
int
num_tbs
;
...
...
@@ -150,7 +150,7 @@ static void iwlagn_unmap_tfd(struct iwl_priv *priv, struct iwl_cmd_meta *meta,
/* Unmap chunks, if any. */
for
(
i
=
1
;
i
<
num_tbs
;
i
++
)
dma_unmap_single
(
priv
->
bus
.
dev
,
iwl_tfd_tb_get_addr
(
tfd
,
i
),
iwl_tfd_tb_get_len
(
tfd
,
i
),
DMA_TO_DEVICE
);
iwl_tfd_tb_get_len
(
tfd
,
i
),
dma_dir
);
}
/**
...
...
@@ -166,7 +166,8 @@ void iwlagn_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)
struct
iwl_tfd
*
tfd_tmp
=
txq
->
tfds
;
int
index
=
txq
->
q
.
read_ptr
;
iwlagn_unmap_tfd
(
priv
,
&
txq
->
meta
[
index
],
&
tfd_tmp
[
index
]);
iwlagn_unmap_tfd
(
priv
,
&
txq
->
meta
[
index
],
&
tfd_tmp
[
index
],
DMA_TO_DEVICE
);
/* free SKB */
if
(
txq
->
txb
)
{
...
...
@@ -309,7 +310,8 @@ void iwl_cmd_queue_unmap(struct iwl_priv *priv)
i
=
get_cmd_index
(
q
,
q
->
read_ptr
);
if
(
txq
->
meta
[
i
].
flags
&
CMD_MAPPED
)
{
iwlagn_unmap_tfd
(
priv
,
&
txq
->
meta
[
i
],
&
txq
->
tfds
[
i
]);
iwlagn_unmap_tfd
(
priv
,
&
txq
->
meta
[
i
],
&
txq
->
tfds
[
i
],
DMA_BIDIRECTIONAL
);
txq
->
meta
[
i
].
flags
=
0
;
}
...
...
@@ -531,12 +533,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
void
iwl_tx_queue_reset
(
struct
iwl_priv
*
priv
,
struct
iwl_tx_queue
*
txq
,
int
slots_num
,
u32
txq_id
)
{
int
actual_slots
=
slots_num
;
if
(
txq_id
==
priv
->
cmd_queue
)
actual_slots
++
;
memset
(
txq
->
meta
,
0
,
sizeof
(
struct
iwl_cmd_meta
)
*
actual_slots
);
memset
(
txq
->
meta
,
0
,
sizeof
(
struct
iwl_cmd_meta
)
*
slots_num
);
txq
->
need_update
=
0
;
...
...
@@ -696,10 +693,11 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
if
(
!
(
cmd
->
dataflags
[
i
]
&
IWL_HCMD_DFL_NOCOPY
))
continue
;
phys_addr
=
dma_map_single
(
priv
->
bus
.
dev
,
(
void
*
)
cmd
->
data
[
i
],
cmd
->
len
[
i
],
DMA_
TO_DEVICE
);
cmd
->
len
[
i
],
DMA_
BIDIRECTIONAL
);
if
(
dma_mapping_error
(
priv
->
bus
.
dev
,
phys_addr
))
{
iwlagn_unmap_tfd
(
priv
,
out_meta
,
&
txq
->
tfds
[
q
->
write_ptr
]);
&
txq
->
tfds
[
q
->
write_ptr
],
DMA_BIDIRECTIONAL
);
idx
=
-
ENOMEM
;
goto
out
;
}
...
...
@@ -803,7 +801,7 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
cmd
=
txq
->
cmd
[
cmd_index
];
meta
=
&
txq
->
meta
[
cmd_index
];
iwlagn_unmap_tfd
(
priv
,
meta
,
&
txq
->
tfds
[
index
]);
iwlagn_unmap_tfd
(
priv
,
meta
,
&
txq
->
tfds
[
index
]
,
DMA_BIDIRECTIONAL
);
/* Input error checking is done when commands are added to queue. */
if
(
meta
->
flags
&
CMD_WANT_SKB
)
{
...
...
drivers/net/wireless/mwifiex/cfg80211.c
浏览文件 @
3be3fdb5
...
...
@@ -1288,6 +1288,8 @@ int mwifiex_register_cfg80211(struct net_device *dev, u8 *mac,
*
(
unsigned
long
*
)
wdev_priv
=
(
unsigned
long
)
priv
;
set_wiphy_dev
(
wdev
->
wiphy
,
(
struct
device
*
)
priv
->
adapter
->
dev
);
ret
=
wiphy_register
(
wdev
->
wiphy
);
if
(
ret
<
0
)
{
dev_err
(
priv
->
adapter
->
dev
,
"%s: registering cfg80211 device
\n
"
,
...
...
drivers/net/wireless/mwl8k.c
浏览文件 @
3be3fdb5
...
...
@@ -2474,6 +2474,7 @@ struct mwl8k_cmd_set_hw_spec {
* faster client.
*/
#define MWL8K_SET_HW_SPEC_FLAG_ENABLE_LIFE_TIME_EXPIRY 0x00000400
#define MWL8K_SET_HW_SPEC_FLAG_GENERATE_CCMP_HDR 0x00000200
#define MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT 0x00000080
#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP 0x00000020
#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_BEACON 0x00000010
...
...
@@ -2510,7 +2511,8 @@ static int mwl8k_cmd_set_hw_spec(struct ieee80211_hw *hw)
cmd
->
flags
=
cpu_to_le32
(
MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT
|
MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP
|
MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_BEACON
|
MWL8K_SET_HW_SPEC_FLAG_ENABLE_LIFE_TIME_EXPIRY
);
MWL8K_SET_HW_SPEC_FLAG_ENABLE_LIFE_TIME_EXPIRY
|
MWL8K_SET_HW_SPEC_FLAG_GENERATE_CCMP_HDR
);
cmd
->
num_tx_desc_per_queue
=
cpu_to_le32
(
MWL8K_TX_DESCS
);
cmd
->
total_rxd
=
cpu_to_le32
(
MWL8K_RX_DESCS
);
...
...
drivers/net/wireless/rtlwifi/pci.c
浏览文件 @
3be3fdb5
...
...
@@ -1615,6 +1615,16 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
pci_read_config_byte
(
pdev
,
0x8
,
&
revisionid
);
pci_read_config_word
(
pdev
,
0x3C
,
&
irqline
);
/* PCI ID 0x10ec:0x8192 occurs for both RTL8192E, which uses
* r8192e_pci, and RTL8192SE, which uses this driver. If the
* revision ID is RTL_PCI_REVISION_ID_8192PCIE (0x01), then
* the correct driver is r8192e_pci, thus this routine should
* return false.
*/
if
(
deviceid
==
RTL_PCI_8192SE_DID
&&
revisionid
==
RTL_PCI_REVISION_ID_8192PCIE
)
return
false
;
if
(
deviceid
==
RTL_PCI_8192_DID
||
deviceid
==
RTL_PCI_0044_DID
||
deviceid
==
RTL_PCI_0047_DID
||
...
...
@@ -1847,7 +1857,8 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
pci_write_config_byte
(
pdev
,
0x04
,
0x07
);
/* find adapter */
_rtl_pci_find_adapter
(
pdev
,
hw
);
if
(
!
_rtl_pci_find_adapter
(
pdev
,
hw
))
goto
fail3
;
/* Init IO handler */
_rtl_pci_io_handler_init
(
&
pdev
->
dev
,
hw
);
...
...
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
浏览文件 @
3be3fdb5
...
...
@@ -53,6 +53,8 @@ MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin");
static
int
rtl92cu_init_sw_vars
(
struct
ieee80211_hw
*
hw
)
{
struct
rtl_priv
*
rtlpriv
=
rtl_priv
(
hw
);
const
struct
firmware
*
firmware
;
int
err
;
rtlpriv
->
dm
.
dm_initialgain_enable
=
1
;
rtlpriv
->
dm
.
dm_flag
=
0
;
...
...
@@ -64,6 +66,24 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
(
"Can't alloc buffer for fw.
\n
"
));
return
1
;
}
/* request fw */
err
=
request_firmware
(
&
firmware
,
rtlpriv
->
cfg
->
fw_name
,
rtlpriv
->
io
.
dev
);
if
(
err
)
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
(
"Failed to request firmware!
\n
"
));
return
1
;
}
if
(
firmware
->
size
>
0x4000
)
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
(
"Firmware is too big!
\n
"
));
release_firmware
(
firmware
);
return
1
;
}
memcpy
(
rtlpriv
->
rtlhal
.
pfirmware
,
firmware
->
data
,
firmware
->
size
);
rtlpriv
->
rtlhal
.
fwsize
=
firmware
->
size
;
release_firmware
(
firmware
);
return
0
;
}
...
...
include/net/cfg80211.h
浏览文件 @
3be3fdb5
...
...
@@ -2697,7 +2697,7 @@ void cfg80211_send_unprot_disassoc(struct net_device *dev, const u8 *buf,
* @dev: network device
* @addr: The source MAC address of the frame
* @key_type: The key type that the received frame used
* @key_id: Key identifier (0..3)
* @key_id: Key identifier (0..3)
. Can be -1 if missing.
* @tsc: The TSC value of the frame that generated the MIC failure (6 octets)
* @gfp: allocation flags
*
...
...
net/mac80211/wpa.c
浏览文件 @
3be3fdb5
...
...
@@ -154,7 +154,13 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
return
RX_CONTINUE
;
mic_fail:
mac80211_ev_michael_mic_failure
(
rx
->
sdata
,
rx
->
key
->
conf
.
keyidx
,
/*
* In some cases the key can be unset - e.g. a multicast packet, in
* a driver that supports HW encryption. Send up the key idx only if
* the key is set.
*/
mac80211_ev_michael_mic_failure
(
rx
->
sdata
,
rx
->
key
?
rx
->
key
->
conf
.
keyidx
:
-
1
,
(
void
*
)
skb
->
data
,
NULL
,
GFP_ATOMIC
);
return
RX_DROP_UNUSABLE
;
}
...
...
net/wireless/nl80211.c
浏览文件 @
3be3fdb5
...
...
@@ -6566,7 +6566,8 @@ void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev,
if
(
addr
)
NLA_PUT
(
msg
,
NL80211_ATTR_MAC
,
ETH_ALEN
,
addr
);
NLA_PUT_U32
(
msg
,
NL80211_ATTR_KEY_TYPE
,
key_type
);
NLA_PUT_U8
(
msg
,
NL80211_ATTR_KEY_IDX
,
key_id
);
if
(
key_id
!=
-
1
)
NLA_PUT_U8
(
msg
,
NL80211_ATTR_KEY_IDX
,
key_id
);
if
(
tsc
)
NLA_PUT
(
msg
,
NL80211_ATTR_KEY_SEQ
,
6
,
tsc
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录