mac80211: extend get_tkip_seq to all keys
Extend the function to read the TKIP IV32/IV16 to read the IV/PN for all ciphers in order to allow drivers with full hardware crypto to properly support this. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Esse commit está contido em:
@@ -69,6 +69,17 @@
|
||||
#define CHANCTX_PR_ARG CHANDEF_PR_ARG, MIN_CHANDEF_PR_ARG, \
|
||||
__entry->rx_chains_static, __entry->rx_chains_dynamic
|
||||
|
||||
#define KEY_ENTRY __field(u32, cipher) \
|
||||
__field(u8, hw_key_idx) \
|
||||
__field(u8, flags) \
|
||||
__field(s8, keyidx)
|
||||
#define KEY_ASSIGN(k) __entry->cipher = (k)->cipher; \
|
||||
__entry->flags = (k)->flags; \
|
||||
__entry->keyidx = (k)->keyidx; \
|
||||
__entry->hw_key_idx = (k)->hw_key_idx;
|
||||
#define KEY_PR_FMT " cipher:0x%x, flags=%#x, keyidx=%d, hw_key_idx=%d"
|
||||
#define KEY_PR_ARG __entry->cipher, __entry->flags, __entry->keyidx, __entry->hw_key_idx
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -522,25 +533,19 @@ TRACE_EVENT(drv_set_key,
|
||||
LOCAL_ENTRY
|
||||
VIF_ENTRY
|
||||
STA_ENTRY
|
||||
__field(u32, cipher)
|
||||
__field(u8, hw_key_idx)
|
||||
__field(u8, flags)
|
||||
__field(s8, keyidx)
|
||||
KEY_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
VIF_ASSIGN;
|
||||
STA_ASSIGN;
|
||||
__entry->cipher = key->cipher;
|
||||
__entry->flags = key->flags;
|
||||
__entry->keyidx = key->keyidx;
|
||||
__entry->hw_key_idx = key->hw_key_idx;
|
||||
KEY_ASSIGN(key);
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT,
|
||||
LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
|
||||
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT KEY_PR_FMT,
|
||||
LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, KEY_PR_ARG
|
||||
)
|
||||
);
|
||||
|
||||
@@ -656,28 +661,25 @@ TRACE_EVENT(drv_get_stats,
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_get_tkip_seq,
|
||||
TRACE_EVENT(drv_get_key_seq,
|
||||
TP_PROTO(struct ieee80211_local *local,
|
||||
u8 hw_key_idx, u32 *iv32, u16 *iv16),
|
||||
struct ieee80211_key_conf *key),
|
||||
|
||||
TP_ARGS(local, hw_key_idx, iv32, iv16),
|
||||
TP_ARGS(local, key),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
__field(u8, hw_key_idx)
|
||||
__field(u32, iv32)
|
||||
__field(u16, iv16)
|
||||
KEY_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
__entry->hw_key_idx = hw_key_idx;
|
||||
__entry->iv32 = *iv32;
|
||||
__entry->iv16 = *iv16;
|
||||
KEY_ASSIGN(key);
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
LOCAL_PR_FMT KEY_PR_FMT,
|
||||
LOCAL_PR_ARG, KEY_PR_ARG
|
||||
)
|
||||
);
|
||||
|
||||
|
Referência em uma nova issue
Block a user