Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
60c2ce2b
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 2 年 前同步成功
通知
173
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看板
提交
60c2ce2b
编写于
7月 01, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-davem' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
0e90ed0e
690b0cac
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
46 addition
and
35 deletion
+46
-35
drivers/net/wireless/ath/ath5k/eeprom.c
drivers/net/wireless/ath/ath5k/eeprom.c
+3
-5
drivers/net/wireless/ath/ath9k/pci.c
drivers/net/wireless/ath/ath9k/pci.c
+6
-0
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
+10
-15
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/ath/ath5k/eeprom.c
浏览文件 @
60c2ce2b
...
@@ -691,14 +691,12 @@ ath5k_eeprom_free_pcal_info(struct ath5k_hw *ah, int mode)
...
@@ -691,14 +691,12 @@ ath5k_eeprom_free_pcal_info(struct ath5k_hw *ah, int mode)
if
(
!
chinfo
[
pier
].
pd_curves
)
if
(
!
chinfo
[
pier
].
pd_curves
)
continue
;
continue
;
for
(
pdg
=
0
;
pdg
<
ee
->
ee_pd_gains
[
mode
]
;
pdg
++
)
{
for
(
pdg
=
0
;
pdg
<
AR5K_EEPROM_N_PD_CURVES
;
pdg
++
)
{
struct
ath5k_pdgain_info
*
pd
=
struct
ath5k_pdgain_info
*
pd
=
&
chinfo
[
pier
].
pd_curves
[
pdg
];
&
chinfo
[
pier
].
pd_curves
[
pdg
];
if
(
pd
!=
NULL
)
{
kfree
(
pd
->
pd_step
);
kfree
(
pd
->
pd_step
);
kfree
(
pd
->
pd_pwr
);
kfree
(
pd
->
pd_pwr
);
}
}
}
kfree
(
chinfo
[
pier
].
pd_curves
);
kfree
(
chinfo
[
pier
].
pd_curves
);
...
...
drivers/net/wireless/ath/ath9k/pci.c
浏览文件 @
60c2ce2b
...
@@ -278,6 +278,12 @@ static int ath_pci_suspend(struct device *device)
...
@@ -278,6 +278,12 @@ static int ath_pci_suspend(struct device *device)
ath9k_hw_set_gpio
(
sc
->
sc_ah
,
sc
->
sc_ah
->
led_pin
,
1
);
ath9k_hw_set_gpio
(
sc
->
sc_ah
,
sc
->
sc_ah
->
led_pin
,
1
);
/* The device has to be moved to FULLSLEEP forcibly.
* Otherwise the chip never moved to full sleep,
* when no interface is up.
*/
ath9k_hw_setpower
(
sc
->
sc_ah
,
ATH9K_PM_FULL_SLEEP
);
return
0
;
return
0
;
}
}
...
...
drivers/net/wireless/iwlwifi/iwl-1000.c
浏览文件 @
60c2ce2b
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-eeprom.h"
#include "iwl-dev.h"
#include "iwl-dev.h"
...
@@ -55,10 +56,10 @@
...
@@ -55,10 +56,10 @@
#define IWL100_UCODE_API_MIN 5
#define IWL100_UCODE_API_MIN 5
#define IWL1000_FW_PRE "iwlwifi-1000-"
#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_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
浏览文件 @
60c2ce2b
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-eeprom.h"
#include "iwl-dev.h"
#include "iwl-dev.h"
...
@@ -58,13 +59,13 @@
...
@@ -58,13 +59,13 @@
#define IWL105_UCODE_API_MIN 5
#define IWL105_UCODE_API_MIN 5
#define IWL2030_FW_PRE "iwlwifi-2030-"
#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_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_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
)
static
void
iwl2000_set_ct_threshold
(
struct
iwl_priv
*
priv
)
{
{
...
...
drivers/net/wireless/iwlwifi/iwl-5000.c
浏览文件 @
60c2ce2b
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#include <net/mac80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-eeprom.h"
#include "iwl-dev.h"
#include "iwl-dev.h"
...
@@ -57,10 +58,10 @@
...
@@ -57,10 +58,10 @@
#define IWL5150_UCODE_API_MIN 1
#define IWL5150_UCODE_API_MIN 1
#define IWL5000_FW_PRE "iwlwifi-5000-"
#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_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 */
/* NIC configuration for 5000 series */
static
void
iwl5000_nic_config
(
struct
iwl_priv
*
priv
)
static
void
iwl5000_nic_config
(
struct
iwl_priv
*
priv
)
...
...
drivers/net/wireless/iwlwifi/iwl-6000.c
浏览文件 @
60c2ce2b
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
#include <linux/stringify.h>
#include "iwl-eeprom.h"
#include "iwl-eeprom.h"
#include "iwl-dev.h"
#include "iwl-dev.h"
...
@@ -58,16 +59,16 @@
...
@@ -58,16 +59,16 @@
#define IWL6000G2_UCODE_API_MIN 4
#define IWL6000G2_UCODE_API_MIN 4
#define IWL6000_FW_PRE "iwlwifi-6000-"
#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_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_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_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
)
static
void
iwl6000_set_ct_threshold
(
struct
iwl_priv
*
priv
)
{
{
...
...
drivers/net/wireless/iwlwifi/iwl-core.c
浏览文件 @
60c2ce2b
...
@@ -1763,6 +1763,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
...
@@ -1763,6 +1763,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
*
ctx
=
iwl_rxon_ctx_from_vif
(
vif
);
struct
iwl_rxon_context
*
bss_ctx
=
&
priv
->
contexts
[
IWL_RXON_CTX_BSS
];
struct
iwl_rxon_context
*
bss_ctx
=
&
priv
->
contexts
[
IWL_RXON_CTX_BSS
];
struct
iwl_rxon_context
*
tmp
;
struct
iwl_rxon_context
*
tmp
;
enum
nl80211_iftype
newviftype
=
newtype
;
u32
interface_modes
;
u32
interface_modes
;
int
err
;
int
err
;
...
@@ -1818,7 +1819,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
...
@@ -1818,7 +1819,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
/* success */
/* success */
iwl_teardown_interface
(
priv
,
vif
,
true
);
iwl_teardown_interface
(
priv
,
vif
,
true
);
vif
->
type
=
newtype
;
vif
->
type
=
new
vif
type
;
vif
->
p2p
=
newp2p
;
vif
->
p2p
=
newp2p
;
err
=
iwl_setup_interface
(
priv
,
ctx
);
err
=
iwl_setup_interface
(
priv
,
ctx
);
WARN_ON
(
err
);
WARN_ON
(
err
);
...
...
drivers/net/wireless/iwlwifi/iwl-tx.c
浏览文件 @
60c2ce2b
...
@@ -126,7 +126,7 @@ static inline u8 iwl_tfd_get_num_tbs(struct iwl_tfd *tfd)
...
@@ -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
,
static
void
iwlagn_unmap_tfd
(
struct
iwl_priv
*
priv
,
struct
iwl_cmd_meta
*
meta
,
struct
iwl_tfd
*
tfd
)
struct
iwl_tfd
*
tfd
,
int
dma_dir
)
{
{
struct
pci_dev
*
dev
=
priv
->
pci_dev
;
struct
pci_dev
*
dev
=
priv
->
pci_dev
;
int
i
;
int
i
;
...
@@ -151,7 +151,7 @@ static void iwlagn_unmap_tfd(struct iwl_priv *priv, struct iwl_cmd_meta *meta,
...
@@ -151,7 +151,7 @@ static void iwlagn_unmap_tfd(struct iwl_priv *priv, struct iwl_cmd_meta *meta,
/* Unmap chunks, if any. */
/* Unmap chunks, if any. */
for
(
i
=
1
;
i
<
num_tbs
;
i
++
)
for
(
i
=
1
;
i
<
num_tbs
;
i
++
)
pci_unmap_single
(
dev
,
iwl_tfd_tb_get_addr
(
tfd
,
i
),
pci_unmap_single
(
dev
,
iwl_tfd_tb_get_addr
(
tfd
,
i
),
iwl_tfd_tb_get_len
(
tfd
,
i
),
PCI_DMA_TODEVICE
);
iwl_tfd_tb_get_len
(
tfd
,
i
),
dma_dir
);
}
}
/**
/**
...
@@ -167,7 +167,8 @@ void iwlagn_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)
...
@@ -167,7 +167,8 @@ void iwlagn_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)
struct
iwl_tfd
*
tfd_tmp
=
txq
->
tfds
;
struct
iwl_tfd
*
tfd_tmp
=
txq
->
tfds
;
int
index
=
txq
->
q
.
read_ptr
;
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
],
PCI_DMA_TODEVICE
);
/* free SKB */
/* free SKB */
if
(
txq
->
txb
)
{
if
(
txq
->
txb
)
{
...
@@ -310,9 +311,7 @@ void iwl_cmd_queue_unmap(struct iwl_priv *priv)
...
@@ -310,9 +311,7 @@ void iwl_cmd_queue_unmap(struct iwl_priv *priv)
i
=
get_cmd_index
(
q
,
q
->
read_ptr
);
i
=
get_cmd_index
(
q
,
q
->
read_ptr
);
if
(
txq
->
meta
[
i
].
flags
&
CMD_MAPPED
)
{
if
(
txq
->
meta
[
i
].
flags
&
CMD_MAPPED
)
{
pci_unmap_single
(
priv
->
pci_dev
,
iwlagn_unmap_tfd
(
priv
,
&
txq
->
meta
[
i
],
&
txq
->
tfds
[
i
],
dma_unmap_addr
(
&
txq
->
meta
[
i
],
mapping
),
dma_unmap_len
(
&
txq
->
meta
[
i
],
len
),
PCI_DMA_BIDIRECTIONAL
);
PCI_DMA_BIDIRECTIONAL
);
txq
->
meta
[
i
].
flags
=
0
;
txq
->
meta
[
i
].
flags
=
0
;
}
}
...
@@ -535,12 +534,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
...
@@ -535,12 +534,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
,
void
iwl_tx_queue_reset
(
struct
iwl_priv
*
priv
,
struct
iwl_tx_queue
*
txq
,
int
slots_num
,
u32
txq_id
)
int
slots_num
,
u32
txq_id
)
{
{
int
actual_slots
=
slots_num
;
memset
(
txq
->
meta
,
0
,
sizeof
(
struct
iwl_cmd_meta
)
*
slots_num
);
if
(
txq_id
==
priv
->
cmd_queue
)
actual_slots
++
;
memset
(
txq
->
meta
,
0
,
sizeof
(
struct
iwl_cmd_meta
)
*
actual_slots
);
txq
->
need_update
=
0
;
txq
->
need_update
=
0
;
...
@@ -700,10 +694,11 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
...
@@ -700,10 +694,11 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
if
(
!
(
cmd
->
dataflags
[
i
]
&
IWL_HCMD_DFL_NOCOPY
))
if
(
!
(
cmd
->
dataflags
[
i
]
&
IWL_HCMD_DFL_NOCOPY
))
continue
;
continue
;
phys_addr
=
pci_map_single
(
priv
->
pci_dev
,
(
void
*
)
cmd
->
data
[
i
],
phys_addr
=
pci_map_single
(
priv
->
pci_dev
,
(
void
*
)
cmd
->
data
[
i
],
cmd
->
len
[
i
],
PCI_DMA_
TODEVICE
);
cmd
->
len
[
i
],
PCI_DMA_
BIDIRECTIONAL
);
if
(
pci_dma_mapping_error
(
priv
->
pci_dev
,
phys_addr
))
{
if
(
pci_dma_mapping_error
(
priv
->
pci_dev
,
phys_addr
))
{
iwlagn_unmap_tfd
(
priv
,
out_meta
,
iwlagn_unmap_tfd
(
priv
,
out_meta
,
&
txq
->
tfds
[
q
->
write_ptr
]);
&
txq
->
tfds
[
q
->
write_ptr
],
PCI_DMA_BIDIRECTIONAL
);
idx
=
-
ENOMEM
;
idx
=
-
ENOMEM
;
goto
out
;
goto
out
;
}
}
...
@@ -807,7 +802,7 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
...
@@ -807,7 +802,7 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
cmd
=
txq
->
cmd
[
cmd_index
];
cmd
=
txq
->
cmd
[
cmd_index
];
meta
=
&
txq
->
meta
[
cmd_index
];
meta
=
&
txq
->
meta
[
cmd_index
];
iwlagn_unmap_tfd
(
priv
,
meta
,
&
txq
->
tfds
[
index
]);
iwlagn_unmap_tfd
(
priv
,
meta
,
&
txq
->
tfds
[
index
]
,
PCI_DMA_BIDIRECTIONAL
);
/* Input error checking is done when commands are added to queue. */
/* Input error checking is done when commands are added to queue. */
if
(
meta
->
flags
&
CMD_WANT_SKB
)
{
if
(
meta
->
flags
&
CMD_WANT_SKB
)
{
...
...
include/net/cfg80211.h
浏览文件 @
60c2ce2b
...
@@ -2688,7 +2688,7 @@ void cfg80211_send_unprot_disassoc(struct net_device *dev, const u8 *buf,
...
@@ -2688,7 +2688,7 @@ void cfg80211_send_unprot_disassoc(struct net_device *dev, const u8 *buf,
* @dev: network device
* @dev: network device
* @addr: The source MAC address of the frame
* @addr: The source MAC address of the frame
* @key_type: The key type that the received frame used
* @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)
* @tsc: The TSC value of the frame that generated the MIC failure (6 octets)
* @gfp: allocation flags
* @gfp: allocation flags
*
*
...
...
net/mac80211/wpa.c
浏览文件 @
60c2ce2b
...
@@ -154,7 +154,13 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
...
@@ -154,7 +154,13 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
return
RX_CONTINUE
;
return
RX_CONTINUE
;
mic_fail:
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
);
(
void
*
)
skb
->
data
,
NULL
,
GFP_ATOMIC
);
return
RX_DROP_UNUSABLE
;
return
RX_DROP_UNUSABLE
;
}
}
...
...
net/wireless/nl80211.c
浏览文件 @
60c2ce2b
...
@@ -6463,7 +6463,8 @@ void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev,
...
@@ -6463,7 +6463,8 @@ void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev,
if
(
addr
)
if
(
addr
)
NLA_PUT
(
msg
,
NL80211_ATTR_MAC
,
ETH_ALEN
,
addr
);
NLA_PUT
(
msg
,
NL80211_ATTR_MAC
,
ETH_ALEN
,
addr
);
NLA_PUT_U32
(
msg
,
NL80211_ATTR_KEY_TYPE
,
key_type
);
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
)
if
(
tsc
)
NLA_PUT
(
msg
,
NL80211_ATTR_KEY_SEQ
,
6
,
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录