Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
4144cb2a
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,发现更多精彩内容 >>
提交
4144cb2a
编写于
1月 17, 2012
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
上级
59f608d8
604c4ef1
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
108 addition
and
112 deletion
+108
-112
MAINTAINERS
MAINTAINERS
+8
-7
drivers/bcma/bcma_private.h
drivers/bcma/bcma_private.h
+1
-0
drivers/bcma/host_pci.c
drivers/bcma/host_pci.c
+18
-25
drivers/bcma/main.c
drivers/bcma/main.c
+24
-0
drivers/net/wireless/ath/ath9k/ar9003_mac.c
drivers/net/wireless/ath/ath9k/ar9003_mac.c
+3
-2
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.c
+3
-2
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+4
-1
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+1
-1
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+4
-36
drivers/net/wireless/ipw2x00/ipw2200.c
drivers/net/wireless/ipw2x00/ipw2200.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-scan.c
+1
-1
drivers/net/wireless/mwl8k.c
drivers/net/wireless/mwl8k.c
+2
-2
drivers/net/wireless/rt2x00/rt2800pci.c
drivers/net/wireless/rt2x00/rt2800pci.c
+8
-20
include/linux/bcma/bcma.h
include/linux/bcma/bcma.h
+1
-1
net/mac80211/cfg.c
net/mac80211/cfg.c
+1
-1
net/mac80211/rx.c
net/mac80211/rx.c
+1
-0
net/mac80211/sta_info.c
net/mac80211/sta_info.c
+4
-2
net/mac80211/tx.c
net/mac80211/tx.c
+1
-9
net/mac80211/wpa.c
net/mac80211/wpa.c
+19
-0
net/mac80211/wpa.h
net/mac80211/wpa.h
+2
-0
未找到文件。
MAINTAINERS
浏览文件 @
4144cb2a
...
...
@@ -1411,6 +1411,7 @@ F: net/ax25/
B43 WIRELESS DRIVER
M: Stefano Brivio <stefano.brivio@polimi.it>
L: linux-wireless@vger.kernel.org
L: b43-dev@lists.infradead.org (moderated for non-subscribers)
W: http://linuxwireless.org/en/users/Drivers/b43
S: Maintained
F: drivers/net/wireless/b43/
...
...
@@ -1587,6 +1588,13 @@ L: linux-scsi@vger.kernel.org
S: Supported
F: drivers/scsi/bnx2fc/
BROADCOM SPECIFIC AMBA DRIVER (BCMA)
M: Rafał Miłecki <zajec5@gmail.com>
L: linux-wireless@vger.kernel.org
S: Maintained
F: drivers/bcma/
F: include/linux/bcma/
BROCADE BFA FC SCSI DRIVER
M: Jing Huang <huangj@brocade.com>
L: linux-scsi@vger.kernel.org
...
...
@@ -6099,13 +6107,6 @@ S: Maintained
F: drivers/ssb/
F: include/linux/ssb/
BROADCOM SPECIFIC AMBA DRIVER (BCMA)
M: Rafał Miłecki <zajec5@gmail.com>
L: linux-wireless@vger.kernel.org
S: Maintained
F: drivers/bcma/
F: include/linux/bcma/
SONY VAIO CONTROL DEVICE DRIVER
M: Mattia Dongili <malattia@linux.it>
L: platform-driver-x86@vger.kernel.org
...
...
drivers/bcma/bcma_private.h
浏览文件 @
4144cb2a
...
...
@@ -19,6 +19,7 @@ int __init bcma_bus_early_register(struct bcma_bus *bus,
struct
bcma_device
*
core_cc
,
struct
bcma_device
*
core_mips
);
#ifdef CONFIG_PM
int
bcma_bus_suspend
(
struct
bcma_bus
*
bus
);
int
bcma_bus_resume
(
struct
bcma_bus
*
bus
);
#endif
...
...
drivers/bcma/host_pci.c
浏览文件 @
4144cb2a
...
...
@@ -235,38 +235,32 @@ static void bcma_host_pci_remove(struct pci_dev *dev)
}
#ifdef CONFIG_PM
static
int
bcma_host_pci_suspend
(
struct
pci_dev
*
dev
,
pm_message_t
state
)
static
int
bcma_host_pci_suspend
(
struct
device
*
dev
)
{
/* Host specific */
pci_save_state
(
dev
);
pci_disable_device
(
dev
);
pci_set_power_state
(
dev
,
pci_choose_state
(
dev
,
state
));
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
struct
bcma_bus
*
bus
=
pci_get_drvdata
(
pdev
);
return
0
;
bus
->
mapped_core
=
NULL
;
return
bcma_bus_suspend
(
bus
);
}
static
int
bcma_host_pci_resume
(
struct
pci_dev
*
dev
)
static
int
bcma_host_pci_resume
(
struct
device
*
dev
)
{
struct
bcma_bus
*
bus
=
pci_get_drvdata
(
dev
);
int
err
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
struct
bcma_bus
*
bus
=
pci_get_drvdata
(
pdev
)
;
/* Host specific */
pci_set_power_state
(
dev
,
0
);
err
=
pci_enable_device
(
dev
);
if
(
err
)
return
err
;
pci_restore_state
(
dev
);
return
bcma_bus_resume
(
bus
);
}
/* Bus specific */
err
=
bcma_bus_resume
(
bus
);
if
(
err
)
return
err
;
static
SIMPLE_DEV_PM_OPS
(
bcma_pm_ops
,
bcma_host_pci_suspend
,
bcma_host_pci_resume
);
#define BCMA_PM_OPS (&bcma_pm_ops)
return
0
;
}
#else
/* CONFIG_PM */
# define bcma_host_pci_suspend NULL
# define bcma_host_pci_resume NULL
#define BCMA_PM_OPS NULL
#endif
/* CONFIG_PM */
static
DEFINE_PCI_DEVICE_TABLE
(
bcma_pci_bridge_tbl
)
=
{
...
...
@@ -284,8 +278,7 @@ static struct pci_driver bcma_pci_bridge_driver = {
.
id_table
=
bcma_pci_bridge_tbl
,
.
probe
=
bcma_host_pci_probe
,
.
remove
=
bcma_host_pci_remove
,
.
suspend
=
bcma_host_pci_suspend
,
.
resume
=
bcma_host_pci_resume
,
.
driver
.
pm
=
BCMA_PM_OPS
,
};
int
__init
bcma_host_pci_init
(
void
)
...
...
drivers/bcma/main.c
浏览文件 @
4144cb2a
...
...
@@ -241,6 +241,21 @@ int __init bcma_bus_early_register(struct bcma_bus *bus,
}
#ifdef CONFIG_PM
int
bcma_bus_suspend
(
struct
bcma_bus
*
bus
)
{
struct
bcma_device
*
core
;
list_for_each_entry
(
core
,
&
bus
->
cores
,
list
)
{
struct
device_driver
*
drv
=
core
->
dev
.
driver
;
if
(
drv
)
{
struct
bcma_driver
*
adrv
=
container_of
(
drv
,
struct
bcma_driver
,
drv
);
if
(
adrv
->
suspend
)
adrv
->
suspend
(
core
);
}
}
return
0
;
}
int
bcma_bus_resume
(
struct
bcma_bus
*
bus
)
{
struct
bcma_device
*
core
;
...
...
@@ -252,6 +267,15 @@ int bcma_bus_resume(struct bcma_bus *bus)
bcma_core_chipcommon_init
(
&
bus
->
drv_cc
);
}
list_for_each_entry
(
core
,
&
bus
->
cores
,
list
)
{
struct
device_driver
*
drv
=
core
->
dev
.
driver
;
if
(
drv
)
{
struct
bcma_driver
*
adrv
=
container_of
(
drv
,
struct
bcma_driver
,
drv
);
if
(
adrv
->
resume
)
adrv
->
resume
(
core
);
}
}
return
0
;
}
#endif
...
...
drivers/net/wireless/ath/ath9k/ar9003_mac.c
浏览文件 @
4144cb2a
...
...
@@ -557,10 +557,11 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
rxs
->
rs_status
|=
ATH9K_RXERR_DECRYPT
;
else
if
(
rxsp
->
status11
&
AR_MichaelErr
)
rxs
->
rs_status
|=
ATH9K_RXERR_MIC
;
if
(
rxsp
->
status11
&
AR_KeyMiss
)
rxs
->
rs_status
|=
ATH9K_RXERR_KEYMISS
;
}
if
(
rxsp
->
status11
&
AR_KeyMiss
)
rxs
->
rs_status
|=
ATH9K_RXERR_KEYMISS
;
return
0
;
}
EXPORT_SYMBOL
(
ath9k_hw_process_rxdesc_edma
);
...
...
drivers/net/wireless/ath/ath9k/mac.c
浏览文件 @
4144cb2a
...
...
@@ -618,10 +618,11 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
rs
->
rs_status
|=
ATH9K_RXERR_DECRYPT
;
else
if
(
ads
.
ds_rxstatus8
&
AR_MichaelErr
)
rs
->
rs_status
|=
ATH9K_RXERR_MIC
;
if
(
ads
.
ds_rxstatus8
&
AR_KeyMiss
)
rs
->
rs_status
|=
ATH9K_RXERR_KEYMISS
;
}
if
(
ads
.
ds_rxstatus8
&
AR_KeyMiss
)
rs
->
rs_status
|=
ATH9K_RXERR_KEYMISS
;
return
0
;
}
EXPORT_SYMBOL
(
ath9k_hw_rxprocdesc
);
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
4144cb2a
...
...
@@ -4852,6 +4852,9 @@ static void b43_op_stop(struct ieee80211_hw *hw)
cancel_work_sync
(
&
(
wl
->
beacon_update_trigger
));
if
(
!
dev
)
goto
out
;
mutex_lock
(
&
wl
->
mutex
);
if
(
b43_status
(
dev
)
>=
B43_STAT_STARTED
)
{
dev
=
b43_wireless_core_stop
(
dev
);
...
...
@@ -4863,7 +4866,7 @@ static void b43_op_stop(struct ieee80211_hw *hw)
out_unlock:
mutex_unlock
(
&
wl
->
mutex
);
out:
cancel_work_sync
(
&
(
wl
->
txpower_adjust_work
));
}
...
...
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
浏览文件 @
4144cb2a
...
...
@@ -2475,7 +2475,7 @@ static s32 brcmf_init_iscan(struct brcmf_cfg80211_priv *cfg_priv)
return
err
;
}
static
void
brcmf_delay
(
u32
ms
)
static
__always_inline
void
brcmf_delay
(
u32
ms
)
{
if
(
ms
<
1000
/
HZ
)
{
cond_resched
();
...
...
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
浏览文件 @
4144cb2a
...
...
@@ -1128,14 +1128,7 @@ static int __devinit brcms_bcma_probe(struct bcma_device *pdev)
return
0
;
}
static
int
brcms_pci_suspend
(
struct
pci_dev
*
pdev
)
{
pci_save_state
(
pdev
);
pci_disable_device
(
pdev
);
return
pci_set_power_state
(
pdev
,
PCI_D3hot
);
}
static
int
brcms_suspend
(
struct
bcma_device
*
pdev
,
pm_message_t
state
)
static
int
brcms_suspend
(
struct
bcma_device
*
pdev
)
{
struct
brcms_info
*
wl
;
struct
ieee80211_hw
*
hw
;
...
...
@@ -1153,40 +1146,15 @@ static int brcms_suspend(struct bcma_device *pdev, pm_message_t state)
wl
->
pub
->
hw_up
=
false
;
spin_unlock_bh
(
&
wl
->
lock
);
/* temporarily do suspend ourselves */
return
brcms_pci_suspend
(
pdev
->
bus
->
host_pci
);
}
static
int
brcms_pci_resume
(
struct
pci_dev
*
pdev
)
{
int
err
=
0
;
uint
val
;
err
=
pci_set_power_state
(
pdev
,
PCI_D0
);
if
(
err
)
return
err
;
pci_restore_state
(
pdev
);
err
=
pci_enable_device
(
pdev
);
if
(
err
)
return
err
;
pci_set_master
(
pdev
);
pci_read_config_dword
(
pdev
,
0x40
,
&
val
);
if
((
val
&
0x0000ff00
)
!=
0
)
pci_write_config_dword
(
pdev
,
0x40
,
val
&
0xffff00ff
);
pr_debug
(
"brcms_suspend ok
\n
"
);
return
0
;
}
static
int
brcms_resume
(
struct
bcma_device
*
pdev
)
{
/*
* just do pci resume for now until bcma supports it.
*/
return
brcms_pci_resume
(
pdev
->
bus
->
host_pci
);
pr_debug
(
"brcms_resume ok
\n
"
);
return
0
;
}
static
struct
bcma_driver
brcms_bcma_driver
=
{
...
...
drivers/net/wireless/ipw2x00/ipw2200.c
浏览文件 @
4144cb2a
...
...
@@ -7848,7 +7848,7 @@ static void ipw_handle_data_packet_monitor(struct ipw_priv *priv,
* more efficiently than we can parse it. ORDER MATTERS HERE */
struct
ipw_rt_hdr
*
ipw_rt
;
short
len
=
le16_to_cpu
(
pkt
->
u
.
frame
.
length
);
unsigned
short
len
=
le16_to_cpu
(
pkt
->
u
.
frame
.
length
);
/* We received data from the HW, so stop the watchdog */
dev
->
trans_start
=
jiffies
;
...
...
@@ -8023,7 +8023,7 @@ static void ipw_handle_promiscuous_rx(struct ipw_priv *priv,
s8
signal
=
frame
->
rssi_dbm
-
IPW_RSSI_TO_DBM
;
s8
noise
=
(
s8
)
le16_to_cpu
(
frame
->
noise
);
u8
rate
=
frame
->
rate
;
short
len
=
le16_to_cpu
(
pkt
->
u
.
frame
.
length
);
unsigned
short
len
=
le16_to_cpu
(
pkt
->
u
.
frame
.
length
);
struct
sk_buff
*
skb
;
int
hdr_only
=
0
;
u16
filter
=
priv
->
prom_priv
->
filter
;
...
...
drivers/net/wireless/iwlwifi/iwl-scan.c
浏览文件 @
4144cb2a
...
...
@@ -569,7 +569,7 @@ static int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
struct
iwl_scan_cmd
*
scan
;
struct
iwl_rxon_context
*
ctx
=
&
priv
->
contexts
[
IWL_RXON_CTX_BSS
];
u32
rate_flags
=
0
;
u16
cmd_len
;
u16
cmd_len
=
0
;
u16
rx_chain
=
0
;
enum
ieee80211_band
band
;
u8
n_probes
=
0
;
...
...
drivers/net/wireless/mwl8k.c
浏览文件 @
4144cb2a
...
...
@@ -2777,7 +2777,7 @@ static int mwl8k_cmd_tx_power(struct ieee80211_hw *hw,
else
if
(
channel
->
band
==
IEEE80211_BAND_5GHZ
)
cmd
->
band
=
cpu_to_le16
(
0x4
);
cmd
->
channel
=
c
hannel
->
hw_value
;
cmd
->
channel
=
c
pu_to_le16
(
channel
->
hw_value
)
;
if
(
conf
->
channel_type
==
NL80211_CHAN_NO_HT
||
conf
->
channel_type
==
NL80211_CHAN_HT20
)
{
...
...
@@ -4066,7 +4066,7 @@ static int mwl8k_cmd_encryption_remove_key(struct ieee80211_hw *hw,
goto
done
;
if
(
key
->
cipher
==
WLAN_CIPHER_SUITE_WEP40
||
WLAN_CIPHER_SUITE_WEP104
)
key
->
cipher
==
WLAN_CIPHER_SUITE_WEP104
)
mwl8k_vif
->
wep_key_conf
[
key
->
keyidx
].
enabled
=
0
;
cmd
->
action
=
cpu_to_le32
(
MWL8K_ENCR_REMOVE_KEY
);
...
...
drivers/net/wireless/rt2x00/rt2800pci.c
浏览文件 @
4144cb2a
...
...
@@ -422,7 +422,6 @@ static int rt2800pci_init_queues(struct rt2x00_dev *rt2x00dev)
static
void
rt2800pci_toggle_irq
(
struct
rt2x00_dev
*
rt2x00dev
,
enum
dev_state
state
)
{
int
mask
=
(
state
==
STATE_RADIO_IRQ_ON
);
u32
reg
;
unsigned
long
flags
;
...
...
@@ -436,25 +435,14 @@ static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev,
}
spin_lock_irqsave
(
&
rt2x00dev
->
irqmask_lock
,
flags
);
rt2x00pci_register_read
(
rt2x00dev
,
INT_MASK_CSR
,
&
reg
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_RXDELAYINT
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TXDELAYINT
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_RX_DONE
,
mask
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AC0_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AC1_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AC2_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AC3_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_HCCA_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_MGMT_DMA_DONE
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_MCU_COMMAND
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_RXTX_COHERENT
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TBTT
,
mask
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_PRE_TBTT
,
mask
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TX_FIFO_STATUS
,
mask
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AUTO_WAKEUP
,
mask
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_GPTIMER
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_RX_COHERENT
,
0
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TX_COHERENT
,
0
);
reg
=
0
;
if
(
state
==
STATE_RADIO_IRQ_ON
)
{
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_RX_DONE
,
1
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TBTT
,
1
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_PRE_TBTT
,
1
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_TX_FIFO_STATUS
,
1
);
rt2x00_set_field32
(
&
reg
,
INT_MASK_CSR_AUTO_WAKEUP
,
1
);
}
rt2x00pci_register_write
(
rt2x00dev
,
INT_MASK_CSR
,
reg
);
spin_unlock_irqrestore
(
&
rt2x00dev
->
irqmask_lock
,
flags
);
...
...
include/linux/bcma/bcma.h
浏览文件 @
4144cb2a
...
...
@@ -162,7 +162,7 @@ struct bcma_driver {
int
(
*
probe
)(
struct
bcma_device
*
dev
);
void
(
*
remove
)(
struct
bcma_device
*
dev
);
int
(
*
suspend
)(
struct
bcma_device
*
dev
,
pm_message_t
state
);
int
(
*
suspend
)(
struct
bcma_device
*
dev
);
int
(
*
resume
)(
struct
bcma_device
*
dev
);
void
(
*
shutdown
)(
struct
bcma_device
*
dev
);
...
...
net/mac80211/cfg.c
浏览文件 @
4144cb2a
...
...
@@ -791,7 +791,7 @@ static int sta_apply_parameters(struct ieee80211_local *local,
if
(
set
&
BIT
(
NL80211_STA_FLAG_AUTHORIZED
))
ret
=
sta_info_move_state_checked
(
sta
,
IEEE80211_STA_AUTHORIZED
);
else
else
if
(
test_sta_flag
(
sta
,
WLAN_STA_AUTHORIZED
))
ret
=
sta_info_move_state_checked
(
sta
,
IEEE80211_STA_ASSOC
);
if
(
ret
)
...
...
net/mac80211/rx.c
浏览文件 @
4144cb2a
...
...
@@ -1979,6 +1979,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
mesh_path_error_tx
(
ifmsh
->
mshcfg
.
element_ttl
,
fwd_hdr
->
addr3
,
0
,
reason
,
fwd_hdr
->
addr2
,
sdata
);
IEEE80211_IFSTA_MESH_CTR_INC
(
ifmsh
,
dropped_frames_no_route
);
kfree_skb
(
fwd_skb
);
return
RX_DROP_MONITOR
;
}
...
...
net/mac80211/sta_info.c
浏览文件 @
4144cb2a
...
...
@@ -238,9 +238,11 @@ static void sta_unblock(struct work_struct *wk)
if
(
sta
->
dead
)
return
;
if
(
!
test_sta_flag
(
sta
,
WLAN_STA_PS_STA
))
if
(
!
test_sta_flag
(
sta
,
WLAN_STA_PS_STA
))
{
local_bh_disable
();
ieee80211_sta_ps_deliver_wakeup
(
sta
);
else
if
(
test_and_clear_sta_flag
(
sta
,
WLAN_STA_PSPOLL
))
{
local_bh_enable
();
}
else
if
(
test_and_clear_sta_flag
(
sta
,
WLAN_STA_PSPOLL
))
{
clear_sta_flag
(
sta
,
WLAN_STA_PS_DRIVER
);
local_bh_disable
();
...
...
net/mac80211/tx.c
浏览文件 @
4144cb2a
...
...
@@ -1001,8 +1001,6 @@ ieee80211_tx_h_stats(struct ieee80211_tx_data *tx)
static
ieee80211_tx_result
debug_noinline
ieee80211_tx_h_encrypt
(
struct
ieee80211_tx_data
*
tx
)
{
struct
ieee80211_tx_info
*
info
=
IEEE80211_SKB_CB
(
tx
->
skb
);
if
(
!
tx
->
key
)
return
TX_CONTINUE
;
...
...
@@ -1017,13 +1015,7 @@ ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx)
case
WLAN_CIPHER_SUITE_AES_CMAC
:
return
ieee80211_crypto_aes_cmac_encrypt
(
tx
);
default:
/* handle hw-only algorithm */
if
(
info
->
control
.
hw_key
)
{
ieee80211_tx_set_protected
(
tx
);
return
TX_CONTINUE
;
}
break
;
return
ieee80211_crypto_hw_encrypt
(
tx
);
}
return
TX_DROP
;
...
...
net/mac80211/wpa.c
浏览文件 @
4144cb2a
...
...
@@ -643,3 +643,22 @@ ieee80211_crypto_aes_cmac_decrypt(struct ieee80211_rx_data *rx)
return
RX_CONTINUE
;
}
ieee80211_tx_result
ieee80211_crypto_hw_encrypt
(
struct
ieee80211_tx_data
*
tx
)
{
struct
sk_buff
*
skb
;
struct
ieee80211_tx_info
*
info
=
NULL
;
skb_queue_walk
(
&
tx
->
skbs
,
skb
)
{
info
=
IEEE80211_SKB_CB
(
skb
);
/* handle hw-only algorithm */
if
(
!
info
->
control
.
hw_key
)
return
TX_DROP
;
}
ieee80211_tx_set_protected
(
tx
);
return
TX_CONTINUE
;
}
net/mac80211/wpa.h
浏览文件 @
4144cb2a
...
...
@@ -32,5 +32,7 @@ ieee80211_tx_result
ieee80211_crypto_aes_cmac_encrypt
(
struct
ieee80211_tx_data
*
tx
);
ieee80211_rx_result
ieee80211_crypto_aes_cmac_decrypt
(
struct
ieee80211_rx_data
*
rx
);
ieee80211_tx_result
ieee80211_crypto_hw_encrypt
(
struct
ieee80211_tx_data
*
tx
);
#endif
/* WPA_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录