AI Trajectory


Trajectory: (Expand/Collapse All)
Seq Timestamp Type Name Duration
0/0 2026/09/23 20:26 flow patch-triage
1m Args:
null

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "KMSANReasoning": "",
  "NeedsKMSAN": false,
  "Reasoning": "The patch only introduces unused enum constants in include/net/ieee80211_radiotap.h defining IEEE 802.11 radiotap UHR USIG bitmasks. It does not modify any executable code, runtime assertions, or data structures used in the compiled kernel.",
  "WorthFuzzing": false
}

1/1 2026/09/23 20:26 action read-patch-diff
0m Args:
null

Results:
{
  "PatchDiff": "commit 6e2af008ce7208566d19b0df4ba596dcfb9bf7bd\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate:   Wed Sep 23 20:26:17 2026 +0000\n\n    syz-cluster: applied patch under review\n\ndiff --git a/include/net/ieee80211_radiotap.h b/include/net/ieee80211_radiotap.h\nindex ffdfbade25b84..733b5128a6df1 100644\n--- a/include/net/ieee80211_radiotap.h\n+++ b/include/net/ieee80211_radiotap.h\n@@ -1,6 +1,6 @@\n /*\n  * Copyright (c) 2017\t\tIntel Deutschland GmbH\n- * Copyright (c) 2018-2019, 2021-2022, 2025 Intel Corporation\n+ * Copyright (c) 2018-2019, 2021-2022, 2025-2026 Intel Corporation\n  *\n  * Permission to use, copy, modify, and/or distribute this software for any\n  * purpose with or without fee is hereby granted, provided that the above\n@@ -608,6 +608,49 @@ enum ieee80211_radiotap_eht_usig_tb {\n \tIEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\n };\n \n+enum ieee80211_radiotap_uhr_usig_mu {\n+\t/* USIG-1 */\n+\tIEEE80211_RADIOTAP_UHR_USIG1_MU_BSS_COLOR_2\t\t= 0x0000003f,\n+\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B20_B24_DISREGARD\t= 0x0000001f,\n+\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B25_VALIDATE\t\t= 0x00000020,\n+\t/* USIG-2 */\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B2_COBF_COSR\t\t= 0x00000100,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B3_B7_PUNCTURED_INFO\t= 0x00003e00,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B8_VALIDATE\t\t= 0x00004000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B9_B10_SIG_MCS\t\t= 0x00018000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B11_B15_UHR_SIG_SYMBOLS\t= 0x003e0000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B16_B19_CRC\t\t= 0x03c00000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B20_B25_TAIL\t\t= 0xfc000000,\n+};\n+\n+enum ieee80211_radiotap_uhr_usig_tb {\n+\t/* USIG-1 */\n+\tIEEE80211_RADIOTAP_UHR_USIG1_TB_B20_B25_DISREGARD\t= 0x0000001f,\n+\n+\t/* USIG-2 */\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\n+};\n+\n+enum ieee80211_radiotap_uhr_usig_elr {\n+\t/* USIG-1 */\n+\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B20_B24_DISREGARD\t= 0x0000001f,\n+\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B25_VALIDATE\t\t= 0x00000020,\n+\n+\t/* USIG-2 */\n+\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B0_B1_PPDU_TYPE\t= 0x000000c0,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B2_B12_STA_ID\t\t= 0x0007ff00,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B13_B15_VALIDATE\t= 0x00380000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B16_B19_CRC\t\t= 0x03c00000,\n+\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B20_B25_TAIL\t\t= 0xfc000000,\n+};\n+\n /*\n  * ieee80211_radiotap_uhr_elr - content of UHR-ELR TLV (type 37)\n  * see https://www.radiotap.org/fields/UHR-ELR for details\n"
}

2/1 2026/09/23 20:26 agent patch-evaluator
1m Model:
core

Args:
null

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "Reasoning": "The patch only introduces unused enum constants in include/net/ieee80211_radiotap.h defining IEEE 802.11 radiotap UHR USIG bitmasks. It does not modify any executable code, runtime assertions, or data structures used in the compiled kernel.",
  "WorthFuzzing": false
}

Instruction:
You are an expert Linux kernel maintainer and security engineer.
Your job is to review a provided patch series and evaluate whether it warrants fuzzing with syzkaller.

IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in
your workspace. Do NOT rely on internal assumptions. You must actively use your code access
tools to inspect the actual source code, callers, and surrounding context.

================================================================================
1. CORE TRIAGE PHILOSOPHY
================================================================================
The goal of patch fuzzing is to discover crashes, regressions, exposed latent bugs,
and newly triggered assertions introduced by the patch series.

- REACHABILITY IS THE PRIMARY GATE:
  Fuzzing can only discover bugs in code that can actually execute in standard virtualized
  environments (GCE or QEMU, utilizing software-emulated devices like USB gadgets, netdev, tun/tap).
  If the modified code is structurally unreachable (see Section 2), it MUST NOT be fuzzed,
  regardless of whether it adds assertions or complex logic.

- DO NOT BLINDLY TRUST "NO FUNCTIONAL CHANGE" (NFCI) OR "REFACTORING" CLAIMS:
  Patch authors routinely label changes as "cleanups", "refactorings", or state
  "No functional change intended". Do NOT take these claims at face value.
  Code refactorings that rearrange logic, introduce helper functions, or alter state management
  in core subsystems frequently introduce subtle semantic shifts or uncover latent kernel bugs.
  If reachable executable code is modified or refactored, it MUST be fuzzed.

- NEW OR MODIFIED ASSERTIONS IN REACHABLE CODE MUST BE FUZZED:
  When a patch introduces or modifies runtime checks or assertions (e.g., WARN_ON*, VM_WARN_ON*,
  BUG_ON*, lockdep_assert*) in reachable code paths, it enforces new or stricter invariants.
  Even if the author believes the invariant always holds, fuzzing is essential to verify whether
  an unusual sequence of operations can violate it.

================================================================================
2. WHEN TO RETURN WorthFuzzing=false (NEGATIVE CRITERIA)
================================================================================
Return WorthFuzzing=false ONLY IF all modified code falls strictly into one or more of these categories:

- Non-kernel and non-executable changes:
  * Modifications to Documentation/, comments, or spelling fixes.
  * User-space directories, self-tests, samples, or scripts (e.g., tools/, samples/, scripts/, usr/)
    that do not affect the compiled kernel image (vmlinux) or kernel modules.
  * Purely decorative logging (e.g., message strings in pr_err, printk, dev_info) or tracepoints
    that do not alter control flow or data structures.
  * Build system or Kconfig changes that do not alter compiled C logic.
- Structurally unreachable hardware:
  * Vendor-specific PCIe switches, SmartNICs, or GPU drivers (e.g., mlxsw, pds_core, qed,
    ionic, amdgpu) requiring physical ASIC/PCIe cards not emulated in standard QEMU.
- Unreachable execution paths:
  * Driver teardown callbacks (.remove, .shutdown, pci_unregister_driver) executed only during
    physical PCI hot-unplug or manual sysfs driver unbinding.
  * Code paths exclusive to architectures other than the target architecture.

================================================================================
3. WHEN TO RETURN WorthFuzzing=true (POSITIVE CRITERIA)
================================================================================
Return WorthFuzzing=true whenever the patch touches reachable executable code, including:
- Core Subsystems:
  * Any logic modifications in memory management (mm/), synchronization/locking (kernel/locking/),
    BPF, scheduler, core networking, VFS, or syscall handling.
- Refactorings and Code Cleanups:
  * Any restructuring of reachable data structures, helper abstractions, or algorithm flows.
- Runtime Assertions and Defensive Checks:
  * Any introduction or alteration of assertions (WARN_ON*, VM_WARN_ON*, BUG_ON*, etc.) in reachable paths.
- Reachable Drivers and Protocols:
  * Drivers accessible via virtual buses (virtio, USB gadget, loopback, netlink, binder, sockets, etc.).

================================================================================
4. EXTRACTING FocusSymbols (PREVENTING DILUTION)
================================================================================
When WorthFuzzing=true, you must extract specific kernel functions into FocusSymbols to guide the fuzzer:

- AVOID UBIQUITOUS LIFECYCLE HOT-PATHS:
  Do NOT list generic, ubiquitous functions called by almost every program in the corpus
  (including, but not limited to: general memory allocators and deallocators, page fault
  and trap handlers, or core synchronization primitives; this is not an exhaustive list).
  Listing ubiquitous functions causes the fuzzer to classify thousands of unrelated tests as "focused",
  which severely dilutes fuzzing effort away from the actual changes.

- TARGET SPECIFIC FEATURE LOGIC AND ENTRYPOINTS:
  List functions that specifically implement the logic being added or altered, or direct API entrypoints
  for the subsystem feature under review.

- HANDLING STATIC INLINE FUNCTIONS IN HEADERS (.h):
  Compiler-inlined static functions (such as static inlines in mm/*.h or include/linux/*.h) lack
  distinct symbol addresses in vmlinux and cannot be targeted directly by symbol coverage filters.
  If the changes are primarily in static inline helpers, identify non-static, feature-specific caller
  functions in .c files that exercise them (avoiding ubiquitous lifecycle wrappers).

================================================================================
5. IDENTIFYING EnableConfigs
================================================================================
Identify any specific CONFIG_ options required to properly compile and reach the modified code:
- Inspect Kconfig files and #ifdef guards; do not make assumptions.
- Check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed.
- Strip any 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4").
Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Target architecture: amd64

For your convenience, here is the diff of the changes:
commit 6e2af008ce7208566d19b0df4ba596dcfb9bf7bd
Author: syz-cluster <triage@syzkaller.com>
Date:   Wed Sep 23 20:26:17 2026 +0000

    syz-cluster: applied patch under review

diff --git a/include/net/ieee80211_radiotap.h b/include/net/ieee80211_radiotap.h
index ffdfbade25b84..733b5128a6df1 100644
--- a/include/net/ieee80211_radiotap.h
+++ b/include/net/ieee80211_radiotap.h
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2017		Intel Deutschland GmbH
- * Copyright (c) 2018-2019, 2021-2022, 2025 Intel Corporation
+ * Copyright (c) 2018-2019, 2021-2022, 2025-2026 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -608,6 +608,49 @@ enum ieee80211_radiotap_eht_usig_tb {
 	IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL		= 0xfc000000,
 };
 
+enum ieee80211_radiotap_uhr_usig_mu {
+	/* USIG-1 */
+	IEEE80211_RADIOTAP_UHR_USIG1_MU_BSS_COLOR_2		= 0x0000003f,
+	IEEE80211_RADIOTAP_UHR_USIG1_MU_B20_B24_DISREGARD	= 0x0000001f,
+	IEEE80211_RADIOTAP_UHR_USIG1_MU_B25_VALIDATE		= 0x00000020,
+	/* USIG-2 */
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B0_B1_PPDU_TYPE		= 0x000000c0,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B2_COBF_COSR		= 0x00000100,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B3_B7_PUNCTURED_INFO	= 0x00003e00,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B8_VALIDATE		= 0x00004000,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B9_B10_SIG_MCS		= 0x00018000,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B11_B15_UHR_SIG_SYMBOLS	= 0x003e0000,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B16_B19_CRC		= 0x03c00000,
+	IEEE80211_RADIOTAP_UHR_USIG2_MU_B20_B25_TAIL		= 0xfc000000,
+};
+
+enum ieee80211_radiotap_uhr_usig_tb {
+	/* USIG-1 */
+	IEEE80211_RADIOTAP_UHR_USIG1_TB_B20_B25_DISREGARD	= 0x0000001f,
+
+	/* USIG-2 */
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B0_B1_PPDU_TYPE		= 0x000000c0,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B2_VALIDATE		= 0x00000100,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B3_B6_SPATIAL_REUSE_1	= 0x00001e00,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B7_B10_SPATIAL_REUSE_2	= 0x0001e000,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B11_B15_DISREGARD	= 0x003e0000,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B16_B19_CRC		= 0x03c00000,
+	IEEE80211_RADIOTAP_UHR_USIG2_TB_B20_B25_TAIL		= 0xfc000000,
+};
+
+enum ieee80211_radiotap_uhr_usig_elr {
+	/* USIG-1 */
+	IEEE80211_RADIOTAP_UHR_USIG1_ELR_B20_B24_DISREGARD	= 0x0000001f,
+	IEEE80211_RADIOTAP_UHR_USIG1_ELR_B25_VALIDATE		= 0x00000020,
+
+	/* USIG-2 */
+	IEEE80211_RADIOTAP_UHR_USIG2_ELR_B0_B1_PPDU_TYPE	= 0x000000c0,
+	IEEE80211_RADIOTAP_UHR_USIG2_ELR_B2_B12_STA_ID		= 0x0007ff00,
+	IEEE80211_RADIOTAP_UHR_USIG2_ELR_B13_B15_VALIDATE	= 0x00380000,
+	IEEE80211_RADIOTAP_UHR_USIG2_ELR_B16_B19_CRC		= 0x03c00000,
+	IEEE80211_RADIOTAP_UHR_USIG2_ELR_B20_B25_TAIL		= 0xfc000000,
+};
+
 /*
  * ieee80211_radiotap_uhr_elr - content of UHR-ELR TLV (type 37)
  * see https://www.radiotap.org/fields/UHR-ELR for details

3/2 2026/09/23 20:26 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 4427
							output: 31
							thoughts: 185
						

Thoughts:
Okay, let's dive into this patch.

**Analyzing the Radiotap Header Modification**

Right, so this patch is touching `include/net/ieee80211_radiotap.h`. Immediately, I see it's adding a few new enums, specifically: `ieee80211_radiotap_uhr_usig_mu`, `ieee80211_radiotap_uhr_usig_tb`, and `ieee80211_radiotap_uhr_usig_elr`. My initial thought is, are these just field definitions within the radiotap header structure, or are they actually being *used* somewhere? We need to determine their actual function. Are they related to existing radiotap field definitions, or are they defining constants?

To get a handle on this, I'll leverage `grepper`. I'll run a search to see if any code actually *uses* these newly introduced enums. I'll extend that search, maybe to include related enums like the `ieee80211_radiotap_eht_usig_tb` one just to make sure we're not missing anything obvious in the surrounding code. A broad search like that will quickly reveal if these are just declarations or if they're actively integrated into the existing wireless stack logic.



4/2 2026/09/23 20:26 tool grepper
0m Args:
{
  "Expression": "ieee80211_radiotap_uhr_usig"
}

Results:
{
  "Output": "include/net/ieee80211_radiotap.h=597=enum ieee80211_radiotap_eht_usig_tb {\n--\ninclude/net/ieee80211_radiotap.h-610-\ninclude/net/ieee80211_radiotap.h:611:enum ieee80211_radiotap_uhr_usig_mu {\ninclude/net/ieee80211_radiotap.h-612-\t/* USIG-1 */\n--\ninclude/net/ieee80211_radiotap.h-626-\ninclude/net/ieee80211_radiotap.h:627:enum ieee80211_radiotap_uhr_usig_tb {\ninclude/net/ieee80211_radiotap.h-628-\t/* USIG-1 */\n--\ninclude/net/ieee80211_radiotap.h-640-\ninclude/net/ieee80211_radiotap.h:641:enum ieee80211_radiotap_uhr_usig_elr {\ninclude/net/ieee80211_radiotap.h-642-\t/* USIG-1 */\n"
}

5/2 2026/09/23 20:26 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 5296
							output: 30
							thoughts: 40
						

Thoughts:
Okay, here's my summary, tailored for an expert audience, as if I'm thinking these things myself:

**Investigating EHT/HE Radiotap Usage in the Kernel**

Alright, time to dig into this. I need to get a handle on how, or if at all, these new EHT or HE radiotap constants are actually being leveraged within the kernel. I should specifically check for the use of something like `IEEE80211_RADIOTAP_EHT_USIG`, or other similarly named flags or identifiers related to these new high-efficiency or extremely high-throughput extensions. I'm assuming that if they're there, they'd be used for parsing, filtering, or emitting 802.11 frames with features exclusive to these newer standards. So, let's start with a thorough search of the kernel source to identify any potential uses and understand the extent of EHT/HE radiotap integration. I'll need to look beyond the obvious include paths and check for any conditional compilation that might hide their use, or even potential future uses, that are commented out or disabled. My focus will be on the places where wireless data is handled, like the mac80211 stack, driver-specific code, and maybe even some packet capture tools.



6/2 2026/09/23 20:26 tool grepper
0m Args:
{
  "Expression": "IEEE80211_RADIOTAP_EHT_USIG"
}

Results:
{
  "Output": "drivers/net/wireless/ath/ath12k/dp_mon.c=385=void ath12k_dp_mon_update_radiotap(struct ath12k_pdev_dp *dp_pdev,\n--\ndrivers/net/wireless/ath/ath12k/dp_mon.c-458-\t\tif (ppduinfo-\u003eeht_usig) {\ndrivers/net/wireless/ath/ath12k/dp_mon.c:459:\t\t\ttlv-\u003etype = cpu_to_le16(IEEE80211_RADIOTAP_EHT_USIG);\ndrivers/net/wireless/ath/ath12k/dp_mon.c-460-\t\t\ttlv-\u003elen = cpu_to_le16(usig_len);\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c=525=ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_cmn(const struct hal_mon_usig_cmn *cmn,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-535-\tcommon = __le32_to_cpu(ppdu_info-\u003eu_sig_info.usig.common);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:536:\tcommon |= IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:537:\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:538:\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:539:\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:540:\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-541-\t\t  ATH12K_LE32_DEC_ENC(cmn-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-542-\t\t\t\t      HAL_RX_USIG_CMN_INFO0_PHY_VERSION,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:543:\t\t\t\t      IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-544-\t\t  u32_encode_bits(ppdu_info-\u003eu_sig_info.bw,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:545:\t\t\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-546-\t\t  u32_encode_bits(ppdu_info-\u003eu_sig_info.ul_dl,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:547:\t\t\t\t  IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-548-\t\t  ATH12K_LE32_DEC_ENC(cmn-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-549-\t\t\t\t      HAL_RX_USIG_CMN_INFO0_BSS_COLOR,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:550:\t\t\t\t      IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-551-\t\t  ATH12K_LE32_DEC_ENC(cmn-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-552-\t\t\t\t      HAL_RX_USIG_CMN_INFO0_TXOP,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:553:\t\t\t\t      IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-554-\tppdu_info-\u003eu_sig_info.usig.common = cpu_to_le32(common);\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c=579=ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_tb(const struct hal_mon_usig_tb *usig_tb,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-585-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:586:\tspatial_reuse1 = IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:587:\tspatial_reuse2 = IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-588-\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-598-\t\t\t\t      HAL_RX_USIG_TB_INFO0_RX_INTEG_CHECK_PASS,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:599:\t\t\t\t      IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-600-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:601:\tvalue |= IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-602-\t\t u32_encode_bits(ppdu_info-\u003eu_sig_info.ppdu_type_comp_mode,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:603:\t\t\t\t IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:604:\t\t IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-605-\t\t ATH12K_LE32_DEC_ENC(usig_tb-\u003einfo0,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-610-\t\t\t\t     spatial_reuse2) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:611:\t\t IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-612-\t\t ATH12K_LE32_DEC_ENC(usig_tb-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-613-\t\t\t\t     HAL_RX_USIG_TB_INFO0_CRC,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:614:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-615-\t\t ATH12K_LE32_DEC_ENC(usig_tb-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-616-\t\t\t\t     HAL_RX_USIG_TB_INFO0_TAIL,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:617:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-618-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:619:\tmask |= IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:620:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:621:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-622-\t\tspatial_reuse1 | spatial_reuse2 |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:623:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:624:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:625:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-626-\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c=633=ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_mu(const struct hal_mon_usig_mu *usig_mu,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-639-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:640:\tsig_symb = IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:641:\tpunc = IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-642-\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-658-\t\t\t\t      HAL_RX_USIG_MU_INFO0_RX_INTEG_CHECK_PASS,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:659:\t\t\t\t      IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-660-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:661:\tvalue |= IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:662:\t\t IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-663-\t\t u32_encode_bits(ppdu_info-\u003eu_sig_info.ppdu_type_comp_mode,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:664:\t\t\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:665:\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-666-\t\t ATH12K_LE32_DEC_ENC(usig_mu-\u003einfo0,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-668-\t\t\t\t     punc) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:669:\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-670-\t\t u32_encode_bits(ppdu_info-\u003eu_sig_info.eht_sig_mcs,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:671:\t\t\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-672-\t\t u32_encode_bits(ppdu_info-\u003eu_sig_info.num_eht_sig_sym,\n--\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-675-\t\t\t\t     HAL_RX_USIG_MU_INFO0_CRC,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:676:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC) |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-677-\t\t ATH12K_LE32_DEC_ENC(usig_mu-\u003einfo0,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-678-\t\t\t\t     HAL_RX_USIG_MU_INFO0_TAIL,\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:679:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL);\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-680-\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:681:\tmask |= IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:682:\t\tIEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:683:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:684:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-685-\t\tpunc |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:686:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:687:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-688-\t\tsig_symb |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:689:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC |\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:690:\t\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL;\ndrivers/net/wireless/ath/ath12k/wifi7/dp_mon.c-691-\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c=814=static void iwl_mld_decode_eht_usig_tb(struct iwl_mld_rx_phy_data *phy_data,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-821-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG1_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:822:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-823-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-824-\t\t\t\t    OFDM_RX_FRAME_EHT_PPDU_TYPE,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:825:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-826-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-827-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG2_VALIDATE_B2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:828:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-829-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-830-\t\t\t\t    OFDM_RX_FRAME_EHT_TRIG_SPATIAL_REUSE_1,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:831:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-832-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-833-\t\t\t\t    OFDM_RX_FRAME_EHT_TRIG_SPATIAL_REUSE_2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:834:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-835-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-836-\t\t\t\t    OFDM_RX_FRAME_EHT_TRIG_USIG2_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:837:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-838-}\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c=840=static void iwl_mld_decode_eht_usig_non_tb(struct iwl_mld_rx_phy_data *phy_data,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-847-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG1_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:848:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-849-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a1,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-850-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG1_VALIDATE,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:851:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-852-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-853-\t\t\t\t    OFDM_RX_FRAME_EHT_PPDU_TYPE,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:854:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-855-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-856-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG2_VALIDATE_B2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:857:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-858-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-859-\t\t\t\t    OFDM_RX_FRAME_EHT_PUNC_CHANNEL,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:860:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-861-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-862-\t\t\t\t    OFDM_RX_FRAME_EHT_USIG2_VALIDATE_B8,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:863:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-864-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-865-\t\t\t\t    OFDM_RX_FRAME_EHT_SIG_MCS,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:866:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-867-\tIWL_MLD_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-868-\t\t\t\t    OFDM_RX_FRAME_EHT_SIG_SYM_NUM,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:869:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-870-}\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c=872=static void iwl_mld_decode_eht_usig(struct iwl_mld_rx_phy_data *phy_data,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-880-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:881:\tusig = iwl_mld_radiotap_put_tlv(skb, IEEE80211_RADIOTAP_EHT_USIG,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-882-\t\t\t\t\tsizeof(*usig));\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-888-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:889:\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN |\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:890:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN |\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:891:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED |\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:892:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN |\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:893:\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-894-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-895-#define CHECK_BW(bw) \\\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:896:\tBUILD_BUG_ON(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_ ## bw ## MHZ != \\\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-897-\t\t     RATE_MCS_CHAN_WIDTH_ ## bw ## _VAL)\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-902-#undef CHECK_BW\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:903:\tBUILD_BUG_ON(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1 !=\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-904-\t\t     RATE_MCS_CHAN_WIDTH_320_VAL);\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-909-\tusig-\u003ecommon |= le32_encode_bits(bw,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:910:\t\t\t\t\t IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-911-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-912-\tusig-\u003ecommon |= LE32_DEC_ENC(usig_a1, OFDM_RX_FRAME_ENHANCED_WIFI_UL_FLAG,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:913:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-914-\tusig-\u003ecommon |= LE32_DEC_ENC(usig_a1, OFDM_RX_FRAME_ENHANCED_WIFI_BSS_COLOR,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:915:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-916-\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-919-\t    le32_get_bits(usig_a2, OFDM_RX_FRAME_EHT_USIG2_VALIDATE_B8))\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:920:\t\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-921-\n--\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-923-\t\t\t\t     OFDM_RX_FRAME_ENHANCED_WIFI_TXOP_DURATION,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:924:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-925-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-926-\tif (!le32_get_bits(usig_a2, OFDM_RX_USIG_CRC_OK))\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:927:\t\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-928-\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:929:\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-930-\tusig-\u003ecommon |= LE32_DEC_ENC(usig_a1,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-931-\t\t\t\t     OFDM_RX_FRAME_ENHANCED_WIFI_VER_ID,\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c:932:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER);\ndrivers/net/wireless/intel/iwlwifi/mld/rx.c-933-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c=1306=static void iwl_mvm_decode_eht_ext_mu(struct iwl_mvm *mvm,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1321-\t\t\t\t\t    IWL_RX_PHY_DATA5_EHT_TYPE_AND_COMP,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1322:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1323-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, data5,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1324-\t\t\t\t\t    IWL_RX_PHY_DATA5_EHT_MU_PUNC_CH_CODE,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1325:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1326-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, data4,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1327-\t\t\t\t\t    IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1328:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1329-\t\tIWL_MVM_ENC_USIG_VALUE_MASK\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1330-\t\t\t(usig, data1, IWL_RX_PHY_DATA1_EHT_MU_NUM_SIG_SYM_USIGA2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1331:\t\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1332-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1387-\t\t\t\t\t    IWL_RX_USIG_A1_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1388:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1389-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a1,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1390-\t\t\t\t\t    IWL_RX_USIG_A1_VALIDATE,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1391:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1392-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1393-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_PPDU_TYPE,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1394:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1395-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1396-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1397:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1398-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1399-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_PUNC_CHANNEL,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1400:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1401-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1402-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B8,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1403:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1404-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1405-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_SIG_MCS,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1406:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1407-\t\tIWL_MVM_ENC_USIG_VALUE_MASK\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1408-\t\t\t(usig, usig_a2, IWL_RX_USIG_A2_EHT_SIG_SYM_NUM,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1409:\t\t\t IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1410-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1411-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_CRC_OK,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1412:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1413-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c=1416=static void iwl_mvm_decode_eht_ext_tb(struct iwl_mvm *mvm,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1426-\t\t\t\t\t    IWL_RX_PHY_DATA5_EHT_TYPE_AND_COMP,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1427:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1428-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, data5,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1429-\t\t\t\t\t    IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE1,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1430:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1431-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1433-\t\t\t\t\t    IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1434:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1435-\t} else {\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1440-\t\t\t\t\t    IWL_RX_USIG_A1_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1441:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1442-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1443-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_PPDU_TYPE,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1444:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1445-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1446-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1447:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1448-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1449-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_1,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1450:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1451-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1452-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1453:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1454-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1455-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_TRIG_USIG2_DISREGARD,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1456:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1457-\t\tIWL_MVM_ENC_USIG_VALUE_MASK(usig, usig_a2,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1458-\t\t\t\t\t    IWL_RX_USIG_A2_EHT_CRC_OK,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1459:\t\t\t\t\t    IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1460-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c=1532=static void iwl_mvm_decode_eht_phy_data(struct iwl_mvm *mvm,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1549-\tusig-\u003ecommon |= cpu_to_le32\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1550:\t\t(IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN |\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1551:\t\t IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1552-\tif (phy_data-\u003ewith_data) {\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1554-\t\t\t\t\t     IWL_RX_PHY_DATA0_EHT_UPLINK,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1555:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1556-\t\tusig-\u003ecommon |= LE32_DEC_ENC(data0,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1557-\t\t\t\t\t     IWL_RX_PHY_DATA0_EHT_BSS_COLOR_MASK,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1558:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1559-\t} else {\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1561-\t\t\t\t\t     IWL_RX_USIG_A1_UL_FLAG,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1562:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1563-\t\tusig-\u003ecommon |= LE32_DEC_ENC(usig_a1,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1564-\t\t\t\t\t     IWL_RX_USIG_A1_BSS_COLOR,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1565:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1566-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1570-\t\tusig-\u003ecommon |=\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1571:\t\t\tcpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1572-\t\tusig-\u003ecommon |=\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1573-\t\t\tLE32_DEC_ENC(data0, IWL_RX_PHY_DATA0_EHT_VALIDATE,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1574:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1575-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1601-\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1602:\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1603-\tif (phy_data-\u003ewith_data)\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1604-\t\tusig-\u003ecommon |= LE32_DEC_ENC(data0, IWL_RX_PHY_DATA0_EHT_TXOP_DUR_MASK,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1605:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1606-\telse\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1607-\t\tusig-\u003ecommon |= LE32_DEC_ENC(usig_a1, IWL_RX_USIG_A1_TXOP_DURATION,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1608:\t\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1609-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1624-\tif (!le32_get_bits(data0, IWL_RX_PHY_DATA0_EHT_SIGA_CRC_OK))\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1625:\t\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1626-\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1627:\tusig-\u003ecommon |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1628-\tusig-\u003ecommon |= LE32_DEC_ENC(data0, IWL_RX_PHY_DATA0_EHT_PHY_VER,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1629:\t\t\t\t     IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1630-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c=1649=static void iwl_mvm_rx_eht(struct iwl_mvm *mvm, struct sk_buff *skb,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1671-\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1672:\tusig = iwl_mvm_radiotap_put_tlv(skb, IEEE80211_RADIOTAP_EHT_USIG,\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1673-\t\t\t\t\tsizeof(*usig));\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1675-\tusig-\u003ecommon |=\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1676:\t\tcpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN);\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1677-\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1684-\tusig-\u003ecommon |= cpu_to_le32\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1685:\t\t(FIELD_PREP(IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW, bw));\ndrivers/net/wireless/intel/iwlwifi/mvm/rxmq.c-1686-\n--\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c=200=void mt76_connac3_mac_decode_eht_radiotap(struct sk_buff *skb, __le32 *rxv,\n--\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c-214-\t\t\t\t\t\t sizeof(*eht) + sizeof(u32));\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c:215:\tusig = mt76_connac3_mac_radiotap_push_tlv(skb, IEEE80211_RADIOTAP_EHT_USIG,\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c-216-\t\t\t\t\t\t  sizeof(*usig));\n--\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c-261-\t\tEHT_BITS(USIG_COMMON_TXOP_KNOWN) |\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c:262:\t\tle32_encode_bits(0, IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER) |\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c:263:\t\tle32_encode_bits(bw, IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW) |\ndrivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c-264-\t\tEHT_PREP(USIG_COMMON_UL_DL, UPLINK, rxv[5]) |\n--\ndrivers/net/wireless/realtek/rtw89/core.c=3715=static const u8 rx_status_bw_to_radiotap_eht_usig[] = {\ndrivers/net/wireless/realtek/rtw89/core.c:3716:\t[RATE_INFO_BW_20] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ,\ndrivers/net/wireless/realtek/rtw89/core.c-3717-\t[RATE_INFO_BW_5] = U8_MAX,\ndrivers/net/wireless/realtek/rtw89/core.c-3718-\t[RATE_INFO_BW_10] = U8_MAX,\ndrivers/net/wireless/realtek/rtw89/core.c:3719:\t[RATE_INFO_BW_40] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ,\ndrivers/net/wireless/realtek/rtw89/core.c:3720:\t[RATE_INFO_BW_80] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ,\ndrivers/net/wireless/realtek/rtw89/core.c:3721:\t[RATE_INFO_BW_160] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ,\ndrivers/net/wireless/realtek/rtw89/core.c-3722-\t[RATE_INFO_BW_HE_RU] = U8_MAX,\ndrivers/net/wireless/realtek/rtw89/core.c:3723:\t[RATE_INFO_BW_320] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1,\ndrivers/net/wireless/realtek/rtw89/core.c-3724-\t[RATE_INFO_BW_EHT_RU] = U8_MAX,\n--\ndrivers/net/wireless/realtek/rtw89/core.c=3727=static void rtw89_core_update_radiotap_eht(struct rtw89_dev *rtwdev,\n--\ndrivers/net/wireless/realtek/rtw89/core.c-3768-\ttlv = (void *)tlv + sizeof(*tlv) + ALIGN(eht_len, 4);\ndrivers/net/wireless/realtek/rtw89/core.c:3769:\ttlv-\u003etype = cpu_to_le16(IEEE80211_RADIOTAP_EHT_USIG);\ndrivers/net/wireless/realtek/rtw89/core.c-3770-\ttlv-\u003elen = cpu_to_le16(usig_len);\n--\ndrivers/net/wireless/realtek/rtw89/core.c-3780-\tusig-\u003ecommon =\ndrivers/net/wireless/realtek/rtw89/core.c:3781:\t\tle32_encode_bits(1, IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN) |\ndrivers/net/wireless/realtek/rtw89/core.c:3782:\t\tle32_encode_bits(bw, IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW);\ndrivers/net/wireless/realtek/rtw89/core.c-3783-}\n--\ninclude/net/ieee80211_radiotap.h=62=enum ieee80211_radiotap_presence {\n--\ninclude/net/ieee80211_radiotap.h-96-\tIEEE80211_RADIOTAP_S1G = 32,\ninclude/net/ieee80211_radiotap.h:97:\tIEEE80211_RADIOTAP_EHT_USIG = 33,\ninclude/net/ieee80211_radiotap.h-98-\tIEEE80211_RADIOTAP_EHT = 34,\n--\ninclude/net/ieee80211_radiotap.h=560=enum ieee80211_radiotap_eht_usig_common {\ninclude/net/ieee80211_radiotap.h:561:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN\t= 0x00000001,\ninclude/net/ieee80211_radiotap.h:562:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN\t\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:563:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN\t\t= 0x00000004,\ninclude/net/ieee80211_radiotap.h:564:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN\t= 0x00000008,\ninclude/net/ieee80211_radiotap.h:565:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN\t\t= 0x00000010,\ninclude/net/ieee80211_radiotap.h:566:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h:567:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED = 0x00000040,\ninclude/net/ieee80211_radiotap.h:568:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK\t= 0x00000080,\ninclude/net/ieee80211_radiotap.h:569:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER\t\t= 0x00007000,\ninclude/net/ieee80211_radiotap.h:570:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW\t\t\t= 0x00038000,\ninclude/net/ieee80211_radiotap.h:571:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ\t\t= 0,\ninclude/net/ieee80211_radiotap.h:572:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ\t\t= 1,\ninclude/net/ieee80211_radiotap.h:573:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ\t\t= 2,\ninclude/net/ieee80211_radiotap.h:574:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ\t\t= 3,\ninclude/net/ieee80211_radiotap.h:575:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1\t\t= 4,\ninclude/net/ieee80211_radiotap.h:576:\t\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_2\t\t= 5,\ninclude/net/ieee80211_radiotap.h:577:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL\t\t= 0x00040000,\ninclude/net/ieee80211_radiotap.h:578:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR\t\t= 0x01f80000,\ninclude/net/ieee80211_radiotap.h:579:\tIEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP\t\t\t= 0xfe000000,\ninclude/net/ieee80211_radiotap.h-580-};\n--\ninclude/net/ieee80211_radiotap.h=582=enum ieee80211_radiotap_eht_usig_mu {\ninclude/net/ieee80211_radiotap.h-583-\t/* MU-USIG-1 */\ninclude/net/ieee80211_radiotap.h:584:\tIEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:585:\tIEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h-586-\t/* MU-USIG-2 */\ninclude/net/ieee80211_radiotap.h:587:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:588:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:589:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO\t= 0x00003e00,\ninclude/net/ieee80211_radiotap.h:590:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE\t\t= 0x00004000,\ninclude/net/ieee80211_radiotap.h:591:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS\t\t= 0x00018000,\ninclude/net/ieee80211_radiotap.h:592:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS = 0x003e0000,\ninclude/net/ieee80211_radiotap.h:593:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:594:\tIEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-595-};\n--\ninclude/net/ieee80211_radiotap.h=597=enum ieee80211_radiotap_eht_usig_tb {\ninclude/net/ieee80211_radiotap.h-598-\t/* TB-USIG-1 */\ninclude/net/ieee80211_radiotap.h:599:\tIEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD\t= 0x0000003f,\ninclude/net/ieee80211_radiotap.h-600-\ninclude/net/ieee80211_radiotap.h-601-\t/* TB-USIG-2 */\ninclude/net/ieee80211_radiotap.h:602:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:603:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:604:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\ninclude/net/ieee80211_radiotap.h:605:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\ninclude/net/ieee80211_radiotap.h:606:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\ninclude/net/ieee80211_radiotap.h:607:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:608:\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-609-};\n"
}

7/2 2026/09/23 20:26 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 24329
							output: 30
							thoughts: 46
						

Thoughts:
Okay, here's my thought process on this specific code change, explained as a first-person summary, keeping in mind my expertise:

**Checking Identifier Usage in the Codebase**

Alright, I've got this diff open, and I see some new identifiers have been introduced. My immediate concern is ensuring these new identifiers aren't already being used somewhere, potentially leading to name collisions or unexpected behavior. So, my next logical step is to systematically check if any of these newly added identifiers are already present within the existing codebase. No need for a blind grep, I can be more targeted. I'll start with a straightforward check of `IEEE80211_RADIOTAP_UHR_USIG`. That's a pretty specific name, so a direct search should be fairly conclusive and give me a good baseline. This is a crucial first step; I need to confirm its uniqueness before I can make any assumptions about its intended use and any potential impact. If it's used elsewhere, then I can see what else I need to investigate in order to proceed.



8/2 2026/09/23 20:26 tool grepper
0m Args:
{
  "Expression": "IEEE80211_RADIOTAP_UHR_USIG"
}

Results:
{
  "Output": "include/net/ieee80211_radiotap.h=611=enum ieee80211_radiotap_uhr_usig_mu {\ninclude/net/ieee80211_radiotap.h-612-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:613:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_BSS_COLOR_2\t\t= 0x0000003f,\ninclude/net/ieee80211_radiotap.h:614:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B20_B24_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:615:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B25_VALIDATE\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h-616-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:617:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:618:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B2_COBF_COSR\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:619:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B3_B7_PUNCTURED_INFO\t= 0x00003e00,\ninclude/net/ieee80211_radiotap.h:620:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B8_VALIDATE\t\t= 0x00004000,\ninclude/net/ieee80211_radiotap.h:621:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B9_B10_SIG_MCS\t\t= 0x00018000,\ninclude/net/ieee80211_radiotap.h:622:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B11_B15_UHR_SIG_SYMBOLS\t= 0x003e0000,\ninclude/net/ieee80211_radiotap.h:623:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:624:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-625-};\n--\ninclude/net/ieee80211_radiotap.h=627=enum ieee80211_radiotap_uhr_usig_tb {\ninclude/net/ieee80211_radiotap.h-628-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:629:\tIEEE80211_RADIOTAP_UHR_USIG1_TB_B20_B25_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h-630-\ninclude/net/ieee80211_radiotap.h-631-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:632:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:633:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:634:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\ninclude/net/ieee80211_radiotap.h:635:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\ninclude/net/ieee80211_radiotap.h:636:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\ninclude/net/ieee80211_radiotap.h:637:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:638:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-639-};\n--\ninclude/net/ieee80211_radiotap.h=641=enum ieee80211_radiotap_uhr_usig_elr {\ninclude/net/ieee80211_radiotap.h-642-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:643:\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B20_B24_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:644:\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B25_VALIDATE\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h-645-\ninclude/net/ieee80211_radiotap.h-646-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:647:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B0_B1_PPDU_TYPE\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:648:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B2_B12_STA_ID\t\t= 0x0007ff00,\ninclude/net/ieee80211_radiotap.h:649:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B13_B15_VALIDATE\t= 0x00380000,\ninclude/net/ieee80211_radiotap.h:650:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:651:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-652-};\n"
}

9/2 2026/09/23 20:26 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 26839
							output: 45
							thoughts: 82
						

Thoughts:
Here's my take on the situation:

**Investigating the IEEE80211_RADIOTAP_UHR_USIG* Occurrences**

Okay, so I've noticed that the only places where `IEEE80211_RADIOTAP_UHR_USIG*` is showing up are within `include/net/ieee80211_radiotap.h`. This is a pretty clear indication of where I need to focus my attention. Given my experience, the next logical step is to dive deeper and see what's happening around those lines in that specific header file. A `read-file` command seems like the most efficient way to achieve that, giving me the immediate surrounding context. I'm hoping this will illuminate how those particular macros are being used within the Radiotap structure definitions and associated functions. Context is everything when dealing with these types of lower-level kernel structures.



10/2 2026/09/23 20:26 tool read-file
0m Args:
{
  "File": "include/net/ieee80211_radiotap.h",
  "FirstLine": 600,
  "LineCount": 70
}

Results:
{
  "Contents": " 600:\t\n 601:\t\t/* TB-USIG-2 */\n 602:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\n 603:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\n 604:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\n 605:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\n 606:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\n 607:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\n 608:\t\tIEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\n 609:\t};\n 610:\t\n 611:\tenum ieee80211_radiotap_uhr_usig_mu {\n 612:\t\t/* USIG-1 */\n 613:\t\tIEEE80211_RADIOTAP_UHR_USIG1_MU_BSS_COLOR_2\t\t= 0x0000003f,\n 614:\t\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B20_B24_DISREGARD\t= 0x0000001f,\n 615:\t\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B25_VALIDATE\t\t= 0x00000020,\n 616:\t\t/* USIG-2 */\n 617:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\n 618:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B2_COBF_COSR\t\t= 0x00000100,\n 619:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B3_B7_PUNCTURED_INFO\t= 0x00003e00,\n 620:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B8_VALIDATE\t\t= 0x00004000,\n 621:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B9_B10_SIG_MCS\t\t= 0x00018000,\n 622:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B11_B15_UHR_SIG_SYMBOLS\t= 0x003e0000,\n 623:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B16_B19_CRC\t\t= 0x03c00000,\n 624:\t\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B20_B25_TAIL\t\t= 0xfc000000,\n 625:\t};\n 626:\t\n 627:\tenum ieee80211_radiotap_uhr_usig_tb {\n 628:\t\t/* USIG-1 */\n 629:\t\tIEEE80211_RADIOTAP_UHR_USIG1_TB_B20_B25_DISREGARD\t= 0x0000001f,\n 630:\t\n 631:\t\t/* USIG-2 */\n 632:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\n 633:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\n 634:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\n 635:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\n 636:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\n 637:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\n 638:\t\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\n 639:\t};\n 640:\t\n 641:\tenum ieee80211_radiotap_uhr_usig_elr {\n 642:\t\t/* USIG-1 */\n 643:\t\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B20_B24_DISREGARD\t= 0x0000001f,\n 644:\t\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B25_VALIDATE\t\t= 0x00000020,\n 645:\t\n 646:\t\t/* USIG-2 */\n 647:\t\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B0_B1_PPDU_TYPE\t= 0x000000c0,\n 648:\t\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B2_B12_STA_ID\t\t= 0x0007ff00,\n 649:\t\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B13_B15_VALIDATE\t= 0x00380000,\n 650:\t\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B16_B19_CRC\t\t= 0x03c00000,\n 651:\t\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B20_B25_TAIL\t\t= 0xfc000000,\n 652:\t};\n 653:\t\n 654:\t/*\n 655:\t * ieee80211_radiotap_uhr_elr - content of UHR-ELR TLV (type 37)\n 656:\t * see https://www.radiotap.org/fields/UHR-ELR for details\n 657:\t */\n 658:\tstruct ieee80211_radiotap_uhr_elr {\n 659:\t\t__le32 known;\n 660:\t\t__le32 sig1, sig2, mark;\n 661:\t} __packed;\n 662:\t\n 663:\tenum ieee80211_radiotap_uhr_elr_known {\n 664:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_VERSION_ID\t\t= 0x00000001,\n 665:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_UL_DL\t\t\t= 0x00000002,\n 666:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_MCS\t\t\t= 0x00000004,\n 667:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_CODING\t\t\t= 0x00000008,\n 668:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_LENGTH\t\t\t= 0x00000010,\n 669:\t\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_LDPC_EXTRA_OFDM_SYM\t= 0x00000020,\n"
}

11/2 2026/09/23 20:26 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 29565
							output: 28
							thoughts: 128
						

Thoughts:
**Diving into the Radiotap Header**

Okay, let's explore `include/net/ieee80211_radiotap.h` and see what's in there. Ah, here's a helpful comment at lines 654-656, pointing to `https://www.radiotap.org/fields/UHR-ELR` for details on UHR-ELR. Right, this header file is the authoritative source, or at least it *defines*, the radiotap specification definitions related to IEEE 802.11. I need to understand this better. Now, the next logical step would be to check the git log or the history of this file. See if there are any other definitions related to UHR.



12/2 2026/09/23 20:27 tool grepper
0m Args:
{
  "Expression": "ieee80211_radiotap_uhr"
}

Results:
{
  "Output": "include/net/ieee80211_radiotap.h=597=enum ieee80211_radiotap_eht_usig_tb {\n--\ninclude/net/ieee80211_radiotap.h-610-\ninclude/net/ieee80211_radiotap.h:611:enum ieee80211_radiotap_uhr_usig_mu {\ninclude/net/ieee80211_radiotap.h-612-\t/* USIG-1 */\n--\ninclude/net/ieee80211_radiotap.h-626-\ninclude/net/ieee80211_radiotap.h:627:enum ieee80211_radiotap_uhr_usig_tb {\ninclude/net/ieee80211_radiotap.h-628-\t/* USIG-1 */\n--\ninclude/net/ieee80211_radiotap.h-640-\ninclude/net/ieee80211_radiotap.h:641:enum ieee80211_radiotap_uhr_usig_elr {\ninclude/net/ieee80211_radiotap.h-642-\t/* USIG-1 */\n--\ninclude/net/ieee80211_radiotap.h-654-/*\ninclude/net/ieee80211_radiotap.h:655: * ieee80211_radiotap_uhr_elr - content of UHR-ELR TLV (type 37)\ninclude/net/ieee80211_radiotap.h-656- * see https://www.radiotap.org/fields/UHR-ELR for details\ninclude/net/ieee80211_radiotap.h-657- */\ninclude/net/ieee80211_radiotap.h:658:struct ieee80211_radiotap_uhr_elr {\ninclude/net/ieee80211_radiotap.h-659-\t__le32 known;\n--\ninclude/net/ieee80211_radiotap.h-662-\ninclude/net/ieee80211_radiotap.h:663:enum ieee80211_radiotap_uhr_elr_known {\ninclude/net/ieee80211_radiotap.h-664-\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_VERSION_ID\t\t= 0x00000001,\n--\ninclude/net/ieee80211_radiotap.h-680-\ninclude/net/ieee80211_radiotap.h:681:enum ieee80211_radiotap_uhr_elr_sig1 {\ninclude/net/ieee80211_radiotap.h-682-\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_VERSION_ID\t\t= 0x00000001,\n--\ninclude/net/ieee80211_radiotap.h-692-\ninclude/net/ieee80211_radiotap.h:693:enum ieee80211_radiotap_uhr_elr_sig2 {\ninclude/net/ieee80211_radiotap.h-694-\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_STA_ID\t\t\t= 0x000007FF,\n--\ninclude/net/ieee80211_radiotap.h-700-\ninclude/net/ieee80211_radiotap.h:701:enum ieee80211_radiotap_uhr_elr_mark {\ninclude/net/ieee80211_radiotap.h-702-\tIEEE80211_RADIOTAP_UHR_ELR_MARK_BSS_COLOR\t\t= 0x0000003F,\n--\ninclude/net/ieee80211_radiotap.h-705-/*\ninclude/net/ieee80211_radiotap.h:706: * ieee80211_radiotap_uhr - content of UHR TLV (type 38)\ninclude/net/ieee80211_radiotap.h-707- * see https://www.radiotap.org/fields/UHR for details\ninclude/net/ieee80211_radiotap.h-708- */\ninclude/net/ieee80211_radiotap.h:709:struct ieee80211_radiotap_uhr {\ninclude/net/ieee80211_radiotap.h-710-\t__le32 known;\n--\ninclude/net/ieee80211_radiotap.h-716-\ninclude/net/ieee80211_radiotap.h:717:enum ieee80211_radiotap_uhr_known {\ninclude/net/ieee80211_radiotap.h-718-\tIEEE80211_RADIOTAP_UHR_KNOWN_SPATIAL_REUSE\t\t= 0x00000001,\n--\ninclude/net/ieee80211_radiotap.h-739-\ninclude/net/ieee80211_radiotap.h:740:enum ieee80211_radiotap_uhr_data {\ninclude/net/ieee80211_radiotap.h-741-\t/* data[0] */\n--\ninclude/net/ieee80211_radiotap.h-806-\ninclude/net/ieee80211_radiotap.h:807:enum ieee80211_radiotap_uhr_user_known {\ninclude/net/ieee80211_radiotap.h-808-\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_STA_ID\t\t= 0x00000001,\n--\ninclude/net/ieee80211_radiotap.h-827-\ninclude/net/ieee80211_radiotap.h:828:enum ieee80211_radiotap_uhr_user_info {\ninclude/net/ieee80211_radiotap.h-829-\tIEEE80211_RADIOTAP_UHR_USER_INFO_STA_ID\t\t\t= 0x000007ff,\n"
}

13/2 2026/09/23 20:27 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 31672
							output: 27
							thoughts: 36
						

Thoughts:
Okay, here's my take on those thoughts, tailored for an expert audience:

**Investigating Radiotap Constant Usage**

Alright, I need to understand the current state of these `IEEE80211_RADIOTAP_UHR*` constants. My gut feeling tells me there *should* be some usage, especially given the continuous evolution of wireless standards. However, it's always worth verifying assumptions. Let's dig in and see if any driver or, heaven forbid, core kernel code is actually leveraging these constants in practice. I'll need to do a thorough search of the relevant source trees. It would be a nightmare if we found outdated or unused constants lingering around. That is what I need to check out. I'll be looking specifically for any instances where these constants are being used in data structures, calculations, or conditional logic, and not just defined somewhere. The aim is to understand their real-world impact and any potential downstream dependencies. This is the first step.



14/2 2026/09/23 20:27 tool grepper
0m Args:
{
  "Expression": "IEEE80211_RADIOTAP_UHR"
}

Results:
{
  "Output": "include/net/ieee80211_radiotap.h=62=enum ieee80211_radiotap_presence {\n--\ninclude/net/ieee80211_radiotap.h-98-\tIEEE80211_RADIOTAP_EHT = 34,\ninclude/net/ieee80211_radiotap.h:99:\tIEEE80211_RADIOTAP_UHR_ELR = 37,\ninclude/net/ieee80211_radiotap.h:100:\tIEEE80211_RADIOTAP_UHR = 38,\ninclude/net/ieee80211_radiotap.h-101-};\n--\ninclude/net/ieee80211_radiotap.h=611=enum ieee80211_radiotap_uhr_usig_mu {\ninclude/net/ieee80211_radiotap.h-612-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:613:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_BSS_COLOR_2\t\t= 0x0000003f,\ninclude/net/ieee80211_radiotap.h:614:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B20_B24_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:615:\tIEEE80211_RADIOTAP_UHR_USIG1_MU_B25_VALIDATE\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h-616-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:617:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:618:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B2_COBF_COSR\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:619:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B3_B7_PUNCTURED_INFO\t= 0x00003e00,\ninclude/net/ieee80211_radiotap.h:620:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B8_VALIDATE\t\t= 0x00004000,\ninclude/net/ieee80211_radiotap.h:621:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B9_B10_SIG_MCS\t\t= 0x00018000,\ninclude/net/ieee80211_radiotap.h:622:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B11_B15_UHR_SIG_SYMBOLS\t= 0x003e0000,\ninclude/net/ieee80211_radiotap.h:623:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:624:\tIEEE80211_RADIOTAP_UHR_USIG2_MU_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-625-};\n--\ninclude/net/ieee80211_radiotap.h=627=enum ieee80211_radiotap_uhr_usig_tb {\ninclude/net/ieee80211_radiotap.h-628-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:629:\tIEEE80211_RADIOTAP_UHR_USIG1_TB_B20_B25_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h-630-\ninclude/net/ieee80211_radiotap.h-631-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:632:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B0_B1_PPDU_TYPE\t\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:633:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B2_VALIDATE\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:634:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B3_B6_SPATIAL_REUSE_1\t= 0x00001e00,\ninclude/net/ieee80211_radiotap.h:635:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B7_B10_SPATIAL_REUSE_2\t= 0x0001e000,\ninclude/net/ieee80211_radiotap.h:636:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B11_B15_DISREGARD\t= 0x003e0000,\ninclude/net/ieee80211_radiotap.h:637:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:638:\tIEEE80211_RADIOTAP_UHR_USIG2_TB_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-639-};\n--\ninclude/net/ieee80211_radiotap.h=641=enum ieee80211_radiotap_uhr_usig_elr {\ninclude/net/ieee80211_radiotap.h-642-\t/* USIG-1 */\ninclude/net/ieee80211_radiotap.h:643:\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B20_B24_DISREGARD\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:644:\tIEEE80211_RADIOTAP_UHR_USIG1_ELR_B25_VALIDATE\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h-645-\ninclude/net/ieee80211_radiotap.h-646-\t/* USIG-2 */\ninclude/net/ieee80211_radiotap.h:647:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B0_B1_PPDU_TYPE\t= 0x000000c0,\ninclude/net/ieee80211_radiotap.h:648:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B2_B12_STA_ID\t\t= 0x0007ff00,\ninclude/net/ieee80211_radiotap.h:649:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B13_B15_VALIDATE\t= 0x00380000,\ninclude/net/ieee80211_radiotap.h:650:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B16_B19_CRC\t\t= 0x03c00000,\ninclude/net/ieee80211_radiotap.h:651:\tIEEE80211_RADIOTAP_UHR_USIG2_ELR_B20_B25_TAIL\t\t= 0xfc000000,\ninclude/net/ieee80211_radiotap.h-652-};\n--\ninclude/net/ieee80211_radiotap.h=663=enum ieee80211_radiotap_uhr_elr_known {\ninclude/net/ieee80211_radiotap.h:664:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_VERSION_ID\t\t= 0x00000001,\ninclude/net/ieee80211_radiotap.h:665:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_UL_DL\t\t\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:666:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_MCS\t\t\t= 0x00000004,\ninclude/net/ieee80211_radiotap.h:667:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_CODING\t\t\t= 0x00000008,\ninclude/net/ieee80211_radiotap.h:668:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_LENGTH\t\t\t= 0x00000010,\ninclude/net/ieee80211_radiotap.h:669:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_LDPC_EXTRA_OFDM_SYM\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h:670:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_1_CRC\t\t= 0x00000040,\ninclude/net/ieee80211_radiotap.h:671:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_1_TAIL\t\t= 0x00000080,\ninclude/net/ieee80211_radiotap.h:672:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_STA_ID\t\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:673:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_DISREGARD\t\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:674:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_2_CRC\t\t= 0x00000400,\ninclude/net/ieee80211_radiotap.h:675:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_2_TAIL\t\t= 0x00000800,\ninclude/net/ieee80211_radiotap.h:676:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_1_CRC_CHECKED\t= 0x00001000,\ninclude/net/ieee80211_radiotap.h:677:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_SIG_2_CRC_CHECKED\t= 0x00002000,\ninclude/net/ieee80211_radiotap.h:678:\tIEEE80211_RADIOTAP_UHR_ELR_KNOWN_MARK_BSS_COLOR\t\t= 0x00010000,\ninclude/net/ieee80211_radiotap.h-679-};\n--\ninclude/net/ieee80211_radiotap.h=681=enum ieee80211_radiotap_uhr_elr_sig1 {\ninclude/net/ieee80211_radiotap.h:682:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_VERSION_ID\t\t= 0x00000001,\ninclude/net/ieee80211_radiotap.h:683:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_UL_DL\t\t\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:684:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_MCS\t\t\t= 0x00000004,\ninclude/net/ieee80211_radiotap.h:685:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_CODING\t\t\t= 0x00000008,\ninclude/net/ieee80211_radiotap.h:686:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_LENGTH\t\t\t= 0x00001FF0,\ninclude/net/ieee80211_radiotap.h:687:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_LDPC_EXTRA_OFDM_SYM\t= 0x00002000,\ninclude/net/ieee80211_radiotap.h:688:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_CRC\t\t\t= 0x0003C000,\ninclude/net/ieee80211_radiotap.h:689:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_TAIL\t\t\t= 0x00FC0000,\ninclude/net/ieee80211_radiotap.h:690:\tIEEE80211_RADIOTAP_UHR_ELR_SIG1_CRC_VALID\t\t= 0x80000000,\ninclude/net/ieee80211_radiotap.h-691-};\n--\ninclude/net/ieee80211_radiotap.h=693=enum ieee80211_radiotap_uhr_elr_sig2 {\ninclude/net/ieee80211_radiotap.h:694:\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_STA_ID\t\t\t= 0x000007FF,\ninclude/net/ieee80211_radiotap.h:695:\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_DISREGARD\t\t= 0x00003800,\ninclude/net/ieee80211_radiotap.h:696:\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_CRC\t\t\t= 0x0003C000,\ninclude/net/ieee80211_radiotap.h:697:\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_TAIL\t\t\t= 0x00FC0000,\ninclude/net/ieee80211_radiotap.h:698:\tIEEE80211_RADIOTAP_UHR_ELR_SIG2_CRC_VALID\t\t= 0x80000000,\ninclude/net/ieee80211_radiotap.h-699-};\n--\ninclude/net/ieee80211_radiotap.h=701=enum ieee80211_radiotap_uhr_elr_mark {\ninclude/net/ieee80211_radiotap.h:702:\tIEEE80211_RADIOTAP_UHR_ELR_MARK_BSS_COLOR\t\t= 0x0000003F,\ninclude/net/ieee80211_radiotap.h-703-};\n--\ninclude/net/ieee80211_radiotap.h=717=enum ieee80211_radiotap_uhr_known {\ninclude/net/ieee80211_radiotap.h:718:\tIEEE80211_RADIOTAP_UHR_KNOWN_SPATIAL_REUSE\t\t= 0x00000001,\ninclude/net/ieee80211_radiotap.h:719:\tIEEE80211_RADIOTAP_UHR_KNOWN_GI_LTF_SIZE\t\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:720:\tIEEE80211_RADIOTAP_UHR_KNOWN_NUMBER_OF_UHR_LTF_SYMBOLS\t= 0x00000004,\ninclude/net/ieee80211_radiotap.h:721:\tIEEE80211_RADIOTAP_UHR_KNOWN_LDPC_EXTRA_SYMBOL_SEGMENT\t= 0x00000008,\ninclude/net/ieee80211_radiotap.h:722:\tIEEE80211_RADIOTAP_UHR_KNOWN_PRE_FEC_PADDING_FACTOR\t= 0x00000010,\ninclude/net/ieee80211_radiotap.h:723:\tIEEE80211_RADIOTAP_UHR_KNOWN_PE_DISAMBIGUITY\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h:724:\tIEEE80211_RADIOTAP_UHR_KNOWN_DISREGARD_OFDMA\t\t= 0x00000040,\ninclude/net/ieee80211_radiotap.h:725:\tIEEE80211_RADIOTAP_UHR_KNOWN_CRC1\t\t\t= 0x00000080,\ninclude/net/ieee80211_radiotap.h:726:\tIEEE80211_RADIOTAP_UHR_KNOWN_TAIL1\t\t\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:727:\tIEEE80211_RADIOTAP_UHR_KNOWN_CRC2\t\t\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:728:\tIEEE80211_RADIOTAP_UHR_KNOWN_TAIL2\t\t\t= 0x00000400,\ninclude/net/ieee80211_radiotap.h:729:\tIEEE80211_RADIOTAP_UHR_KNOWN_INTERFERENCE_MITIGATION\t= 0x00000800,\ninclude/net/ieee80211_radiotap.h:730:\tIEEE80211_RADIOTAP_UHR_KNOWN_DISREGARD_NON_OFDMA\t= 0x00001000,\ninclude/net/ieee80211_radiotap.h:731:\tIEEE80211_RADIOTAP_UHR_KNOWN_NUMBER_OF_NON_OFDMA_USERS\t= 0x00002000,\ninclude/net/ieee80211_radiotap.h:732:\tIEEE80211_RADIOTAP_UHR_KNOWN_COMMON_ENCODING_BLOCK_CRC\t= 0x00004000,\ninclude/net/ieee80211_radiotap.h:733:\tIEEE80211_RADIOTAP_UHR_KNOWN_COMMON_ENCODING_BLOCK_TAIL\t= 0x00008000,\ninclude/net/ieee80211_radiotap.h:734:\tIEEE80211_RADIOTAP_UHR_KNOWN_RU_MRU_DRU_SIZE\t\t= 0x00010000,\ninclude/net/ieee80211_radiotap.h:735:\tIEEE80211_RADIOTAP_UHR_KNOWN_RU_MRU_INDEX\t\t= 0x00020000,\ninclude/net/ieee80211_radiotap.h:736:\tIEEE80211_RADIOTAP_UHR_KNOWN_DRU_RRU_ALLOC_TB_FMT\t= 0x00040000,\ninclude/net/ieee80211_radiotap.h:737:\tIEEE80211_RADIOTAP_UHR_KNOWN_PRI80_CHAN_POS\t\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h-738-};\n--\ninclude/net/ieee80211_radiotap.h=740=enum ieee80211_radiotap_uhr_data {\ninclude/net/ieee80211_radiotap.h-741-\t/* data[0] */\ninclude/net/ieee80211_radiotap.h:742:\tIEEE80211_RADIOTAP_UHR_DATA0_SPATIAL_REUSE\t\t= 0x0000000F,\ninclude/net/ieee80211_radiotap.h:743:\tIEEE80211_RADIOTAP_UHR_DATA0_GI_LTF_SIZE\t\t= 0x00000030,\ninclude/net/ieee80211_radiotap.h:744:\tIEEE80211_RADIOTAP_UHR_DATA0_NUMBER_OF_LTF_SYMBOLS\t= 0x00000700,\ninclude/net/ieee80211_radiotap.h:745:\tIEEE80211_RADIOTAP_UHR_DATA0_LDPC_EXTRA_SYMBOL_SEGMENT\t= 0x00000800,\ninclude/net/ieee80211_radiotap.h:746:\tIEEE80211_RADIOTAP_UHR_DATA0_PRE_FEC_PADDING_FACTOR\t= 0x00003000,\ninclude/net/ieee80211_radiotap.h:747:\tIEEE80211_RADIOTAP_UHR_DATA0_PE_DISAMBIGUITY\t\t= 0x00004000,\ninclude/net/ieee80211_radiotap.h:748:\tIEEE80211_RADIOTAP_UHR_DATA0_DISREGARD_OFDMA\t\t= 0x00078000,\ninclude/net/ieee80211_radiotap.h:749:\tIEEE80211_RADIOTAP_UHR_DATA0_CRC1\t\t\t= 0x00780000,\ninclude/net/ieee80211_radiotap.h:750:\tIEEE80211_RADIOTAP_UHR_DATA0_TAIL1\t\t\t= 0x1f800000,\ninclude/net/ieee80211_radiotap.h-751-\t/* data[1] */\ninclude/net/ieee80211_radiotap.h:752:\tIEEE80211_RADIOTAP_UHR_DATA1_RU_MRU_DRU_SIZE\t\t= 0x0000001f,\ninclude/net/ieee80211_radiotap.h:753:\tIEEE80211_RADIOTAP_UHR_DATA1_RU_MRU_INDEX\t\t= 0x00001fe0,\ninclude/net/ieee80211_radiotap.h:754:\tIEEE80211_RADIOTAP_UHR_DATA1_RU_ALLOC_CC_1_1_1\t\t= 0x003fe000,\ninclude/net/ieee80211_radiotap.h:755:\tIEEE80211_RADIOTAP_UHR_DATA1_RU_ALLOC_CC_1_1_1_KNOWN\t= 0x00400000,\ninclude/net/ieee80211_radiotap.h:756:\tIEEE80211_RADIOTAP_UHR_DATA1_PRI80_CHAN_POS\t\t= 0xc0000000,\ninclude/net/ieee80211_radiotap.h-757-\t/* data[2] */\ninclude/net/ieee80211_radiotap.h:758:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_2_1_1\t\t= 0x000001ff,\ninclude/net/ieee80211_radiotap.h:759:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_2_1_1_KNOWN\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:760:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_1_1_2\t\t= 0x0007fc00,\ninclude/net/ieee80211_radiotap.h:761:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_1_1_2_KNOWN\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h:762:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_2_1_2\t\t= 0x1ff00000,\ninclude/net/ieee80211_radiotap.h:763:\tIEEE80211_RADIOTAP_UHR_DATA2_RU_ALLOC_CC_2_1_2_KNOWN\t= 0x20000000,\ninclude/net/ieee80211_radiotap.h-764-\t/* data[3] */\ninclude/net/ieee80211_radiotap.h:765:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_1_2_1\t\t= 0x000001ff,\ninclude/net/ieee80211_radiotap.h:766:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_1_2_1_KNOWN\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:767:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_2_2_1\t\t= 0x0007fc00,\ninclude/net/ieee80211_radiotap.h:768:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_2_2_1_KNOWN\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h:769:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_1_2_2\t\t= 0x1ff00000,\ninclude/net/ieee80211_radiotap.h:770:\tIEEE80211_RADIOTAP_UHR_DATA3_RU_ALLOC_CC_1_2_2_KNOWN\t= 0x20000000,\ninclude/net/ieee80211_radiotap.h-771-\t/* data[4] */\ninclude/net/ieee80211_radiotap.h:772:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_2_2_2\t\t= 0x000001ff,\ninclude/net/ieee80211_radiotap.h:773:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_2_2_2_KNOWN\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:774:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_1_2_3\t\t= 0x0007fc00,\ninclude/net/ieee80211_radiotap.h:775:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_1_2_3_KNOWN\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h:776:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_2_2_3\t\t= 0x1ff00000,\ninclude/net/ieee80211_radiotap.h:777:\tIEEE80211_RADIOTAP_UHR_DATA4_RU_ALLOC_CC_2_2_3_KNOWN\t= 0x20000000,\ninclude/net/ieee80211_radiotap.h-778-\t/* data[5] */\ninclude/net/ieee80211_radiotap.h:779:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_1_2_4\t\t= 0x000001ff,\ninclude/net/ieee80211_radiotap.h:780:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_1_2_4_KNOWN\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:781:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_2_2_4\t\t= 0x0007fc00,\ninclude/net/ieee80211_radiotap.h:782:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_2_2_4_KNOWN\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h:783:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_1_2_5\t\t= 0x1ff00000,\ninclude/net/ieee80211_radiotap.h:784:\tIEEE80211_RADIOTAP_UHR_DATA5_RU_ALLOC_CC_1_2_5_KNOWN\t= 0x20000000,\ninclude/net/ieee80211_radiotap.h-785-\t/* data[6] */\ninclude/net/ieee80211_radiotap.h:786:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_2_2_5\t\t= 0x000001ff,\ninclude/net/ieee80211_radiotap.h:787:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_2_2_5_KNOWN\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:788:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_1_2_6\t\t= 0x0007fc00,\ninclude/net/ieee80211_radiotap.h:789:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_1_2_6_KNOWN\t= 0x00080000,\ninclude/net/ieee80211_radiotap.h:790:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_2_2_6\t\t= 0x1ff00000,\ninclude/net/ieee80211_radiotap.h:791:\tIEEE80211_RADIOTAP_UHR_DATA6_RU_ALLOC_CC_2_2_6_KNOWN\t= 0x20000000,\ninclude/net/ieee80211_radiotap.h-792-\t/* data[7] */\ninclude/net/ieee80211_radiotap.h:793:\tIEEE80211_RADIOTAP_UHR_DATA7_CRC2\t\t\t= 0x0000000f,\ninclude/net/ieee80211_radiotap.h:794:\tIEEE80211_RADIOTAP_UHR_DATA7_TAIL2\t\t\t= 0x000003f0,\ninclude/net/ieee80211_radiotap.h:795:\tIEEE80211_RADIOTAP_UHR_DATA7_INTERFERENCE_MITIGATION\t= 0x00000400,\ninclude/net/ieee80211_radiotap.h:796:\tIEEE80211_RADIOTAP_UHR_DATA7_DISREGARD_NON_OFDMA\t= 0x00001800,\ninclude/net/ieee80211_radiotap.h:797:\tIEEE80211_RADIOTAP_UHR_DATA7_NUMBER_OF_NON_OFDMA_USERS\t= 0x0000e000,\ninclude/net/ieee80211_radiotap.h:798:\tIEEE80211_RADIOTAP_UHR_DATA7_COMMON_ENCODING_BLOCK_CRC\t= 0x000f0000,\ninclude/net/ieee80211_radiotap.h:799:\tIEEE80211_RADIOTAP_UHR_DATA7_COMMON_ENCODING_BLOCK_TAIL\t= 0x03f00000,\ninclude/net/ieee80211_radiotap.h-800-\t/* data[8] */\ninclude/net/ieee80211_radiotap.h:801:\tIEEE80211_RADIOTAP_UHR_DATA8_DRU_RRU_ALLOC_TB_FMT_PS_160= 0x00000001,\ninclude/net/ieee80211_radiotap.h:802:\tIEEE80211_RADIOTAP_UHR_DATA8_DRU_RRU_ALLOC_TB_FMT_B0\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:803:\tIEEE80211_RADIOTAP_UHR_DATA8_DRU_RRU_ALLOC_TB_FMT_B7_B1\t= 0x000001fc,\ninclude/net/ieee80211_radiotap.h:804:\tIEEE80211_RADIOTAP_UHR_DATA8_DRU_RRU_INDICATION\t\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h-805-};\n--\ninclude/net/ieee80211_radiotap.h=807=enum ieee80211_radiotap_uhr_user_known {\ninclude/net/ieee80211_radiotap.h:808:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_STA_ID\t\t= 0x00000001,\ninclude/net/ieee80211_radiotap.h:809:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_MCS\t\t\t= 0x00000002,\ninclude/net/ieee80211_radiotap.h:810:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_NSS\t\t\t= 0x00000004,\ninclude/net/ieee80211_radiotap.h:811:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_UEQM\t\t\t= 0x00000008,\ninclude/net/ieee80211_radiotap.h:812:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_BF\t\t\t= 0x00000010,\ninclude/net/ieee80211_radiotap.h:813:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_CODING\t\t= 0x00000020,\ninclude/net/ieee80211_radiotap.h:814:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_UEQM_PATTERN\t\t= 0x00000040,\ninclude/net/ieee80211_radiotap.h:815:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_2X_LDPC\t\t= 0x00000080,\ninclude/net/ieee80211_radiotap.h:816:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_SPATIAL_CONFIG\t= 0x00000100,\ninclude/net/ieee80211_radiotap.h:817:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_DISREGARD\t\t= 0x00000200,\ninclude/net/ieee80211_radiotap.h:818:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_BSS_COLOR_INDICATION\t= 0x00000400,\ninclude/net/ieee80211_radiotap.h:819:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_USR_ENC_BLK_CRC\t= 0x00000800,\ninclude/net/ieee80211_radiotap.h:820:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_USR_ENC_BLK_TAIL\t= 0x00001000,\ninclude/net/ieee80211_radiotap.h-821-\t/* really 'known' but actual data */\ninclude/net/ieee80211_radiotap.h:822:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_DATA_USR_ENC_BLK_CRC\t= 0x000f0000,\ninclude/net/ieee80211_radiotap.h:823:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_DATA_USR_ENC_BLK_TAIL\t= 0x03f00000,\ninclude/net/ieee80211_radiotap.h-824-\t/* indicates this user was captured */\ninclude/net/ieee80211_radiotap.h:825:\tIEEE80211_RADIOTAP_UHR_USER_KNOWN_USER_CAPTURED\t\t= 0x80000000,\ninclude/net/ieee80211_radiotap.h-826-};\n--\ninclude/net/ieee80211_radiotap.h=828=enum ieee80211_radiotap_uhr_user_info {\ninclude/net/ieee80211_radiotap.h:829:\tIEEE80211_RADIOTAP_UHR_USER_INFO_STA_ID\t\t\t= 0x000007ff,\ninclude/net/ieee80211_radiotap.h:830:\tIEEE80211_RADIOTAP_UHR_USER_INFO_MCS\t\t\t= 0x0000f800,\ninclude/net/ieee80211_radiotap.h:831:\tIEEE80211_RADIOTAP_UHR_USER_INFO_NSS\t\t\t= 0x00070000,\ninclude/net/ieee80211_radiotap.h:832:\tIEEE80211_RADIOTAP_UHR_USER_INFO_SPATIAL_CONFIG\t\t= 0x000f0000,\ninclude/net/ieee80211_radiotap.h:833:\tIEEE80211_RADIOTAP_UHR_USER_INFO_UEQM\t\t\t= 0x00100000,\ninclude/net/ieee80211_radiotap.h:834:\tIEEE80211_RADIOTAP_UHR_USER_INFO_DISREGARD\t\t= 0x00100000,\ninclude/net/ieee80211_radiotap.h:835:\tIEEE80211_RADIOTAP_UHR_USER_INFO_BF\t\t\t= 0x00200000,\ninclude/net/ieee80211_radiotap.h:836:\tIEEE80211_RADIOTAP_UHR_USER_INFO_BSS_COLOR_INDICATION\t= 0x00200000,\ninclude/net/ieee80211_radiotap.h:837:\tIEEE80211_RADIOTAP_UHR_USER_INFO_UEQM_PATTERN\t\t= 0x00c00000,\ninclude/net/ieee80211_radiotap.h:838:\tIEEE80211_RADIOTAP_UHR_USER_INFO_CODING\t\t\t= 0x01000000,\ninclude/net/ieee80211_radiotap.h:839:\tIEEE80211_RADIOTAP_UHR_USER_INFO_2X_LDPC\t\t= 0x02000000,\ninclude/net/ieee80211_radiotap.h-840-};\n"
}

15/2 2026/09/23 20:27 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 43474
							output: 34
							thoughts: 67
						

Thoughts:
Okay, here's my assessment of the situation:

**UHR Constants - A Deep Dive**

I'm digging into the kernel, and frankly, I'm a bit surprised. *None* of those Ultra High Rate constants, the `IEEE80211_RADIOTAP_UHR*` definitions, are actually being *used* anywhere in the codebase! That's... curious. I need to make sure I'm not missing something subtle here, so I'm going to conduct a thorough search. I'll need to meticulously double-check through `net/mac80211`, which is the core of our wireless networking stack, and also make sure to scour through the relevant `drivers/net/wireless` directories, and really anything else that looks like it might touch the radio tap header or any kind of ultra-high-rate transmission functionality. I need to be *absolutely certain* that there are no hidden references or uses of those constants lurking anywhere. It could be a sign of unused code, an incomplete implementation, or perhaps a misunderstanding somewhere. I need to get to the bottom of this.



16/2 2026/09/23 20:27 tool grepper
0m Error:
no matches

Args:
{
  "Expression": "IEEE80211_RADIOTAP_UHR",
  "PathPrefix": "drivers"
}

Results:
{
  "error": "no matches"
}

17/2 2026/09/23 20:27 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 43827
							output: 34
							thoughts: 8
						

Thoughts:
Okay, here's my interpretation of that thought process, tailored for an expert audience, and rendered in the first person:

**Navigating the Network Landscape**

Alright, time to dig in. Let's see... the initial directive indicates something network-related. My mental checklist kicks in: vulnerabilities, configurations, traffic analysis, performance monitoring – all potentially relevant. Therefore, my first instinct is to zero in on the `net/` directory or namespace. This is where I'd expect to find the core networking components and related code, whether it's dealing with sockets, routing, firewalls, or whatever the context of this issue is. Grabbing a look there will give me a good jumping-off point to assess the architecture and likely areas of impact.



18/2 2026/09/23 20:27 tool grepper
0m Error:
no matches

Args:
{
  "Expression": "IEEE80211_RADIOTAP_UHR",
  "PathPrefix": "net"
}

Results:
{
  "error": "no matches"
}

19/2 2026/09/23 20:27 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 44041
							output: 95
							thoughts: 2769
						

Thoughts:
**Analysis of the Radiotap Header Modification**

Okay, so I've got this patch in front of me, and it seems like it's adding some new enum definitions for the radiotap header, specifically related to UHR-USIG fields. I can see from the diff that the only file changed is `include/net/ieee80211_radiotap.h`. Looking at the code, it's just adding these new enums: `ieee80211_radiotap_uhr_usig_mu`, `ieee80211_radiotap_uhr_usig_tb`, and `ieee80211_radiotap_uhr_usig_elr`.

Now, the crucial question is whether this merits fuzzing. The goal of patch fuzzing is to find bugs, so I need to assess reachability. The rules clearly state that if there is no *reachable executable code* modified, then there's no need to fuzz. Looking closer, these are *just* enum definitions. They don't seem to be used anywhere in the kernel code. They don't change any existing data structures or sizes, and they certainly don't introduce any new control flow or logic. There's no executable code introduced. I've re-read the relevant documentation.

This falls squarely under the "Non-kernel and non-executable changes" category. These are header-only changes that *do not affect* the compiled kernel image or kernel modules. These are unused enum declarations.

Therefore, after a thorough review, it's clear: WorthFuzzing is false. There's nothing to fuzz here. No executable code is affected. The commit is purely additive header definitions.



20/2 2026/09/23 20:27 tool set-results
0m Args:
{
  "EnableConfigs": [],
  "FocusSymbols": [],
  "Reasoning": "The patch only introduces unused enum constants in include/net/ieee80211_radiotap.h defining IEEE 802.11 radiotap UHR USIG bitmasks. It does not modify any executable code, runtime assertions, or data structures used in the compiled kernel.",
  "WorthFuzzing": false
}

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "Reasoning": "The patch only introduces unused enum constants in include/net/ieee80211_radiotap.h defining IEEE 802.11 radiotap UHR USIG bitmasks. It does not modify any executable code, runtime assertions, or data structures used in the compiled kernel.",
  "WorthFuzzing": false
}

21/1 2026/09/23 20:27 action If
0m Args:
{
  "WorthFuzzing": false
}

Results:
null

LLM Calls Summary:
Total Calls Total Tokens Avg Tokens Total Duration (Seconds) Avg Duration (Seconds)
Tool Calls Summary:
Total Calls Total Duration (Seconds) Avg Duration (Seconds)