| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/08/31 18:39 | flow | patch-triage |
1mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The patch modifies MCC response packet size validation in the Intel iwlwifi wireless driver (iwlmvm). This driver requires physical Intel PCIe wireless network adapters and proprietary firmware, which are not emulated in standard virtualized environments like QEMU/GCE. Therefore, this code is unreachable during fuzzing.",
"WorthFuzzing": false
} |
| 1/1 | 2026/08/31 18:39 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit ceffddf09aad78e2b4a975e0c9e575161b28076c\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Mon Aug 31 18:39:03 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c\nindex 953218f1e025a..f76e57399c1f3 100644\n--- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c\n+++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c\n@@ -1,6 +1,6 @@\n // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause\n /*\n- * Copyright (C) 2012-2014, 2018-2019, 2021-2025 Intel Corporation\n+ * Copyright (C) 2012-2014, 2018-2019, 2021-2026 Intel Corporation\n * Copyright (C) 2013-2015 Intel Mobile Communications GmbH\n * Copyright (C) 2016-2017 Intel Deutschland GmbH\n */\n@@ -416,6 +416,7 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\n \tint ret, resp_ver;\n \tu32 status;\n \tint resp_len, n_channels;\n+\tunsigned int pkt_len;\n \tu16 mcc;\n \n \tif (WARN_ON_ONCE(!iwl_mvm_is_lar_supported(mvm)))\n@@ -431,6 +432,7 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\n \t\treturn ERR_PTR(ret);\n \n \tpkt = cmd.resp_pkt;\n+\tpkt_len = iwl_rx_packet_payload_len(pkt);\n \n \tresp_ver = iwl_fw_lookup_notif_ver(mvm-\u003efw, IWL_ALWAYS_LONG_GROUP,\n \t\t\t\t\t MCC_UPDATE_CMD, 0);\n@@ -439,9 +441,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\n \tif (resp_ver \u003e= 8) {\n \t\tstruct iwl_mcc_update_resp_v8 *mcc_resp_v8 = (void *)pkt-\u003edata;\n \n+\t\tif (IWL_FW_CHECK(mvm, pkt_len \u003c sizeof(*mcc_resp_v8),\n+\t\t\t\t \"MCC v8 response too short: %u\\n\", pkt_len)) {\n+\t\t\tresp_cp = ERR_PTR(-EINVAL);\n+\t\t\tgoto exit;\n+\t\t}\n+\n \t\tn_channels = __le32_to_cpu(mcc_resp_v8-\u003en_channels);\n-\t\tif (iwl_rx_packet_payload_len(pkt) !=\n-\t\t struct_size(mcc_resp_v8, channels, n_channels)) {\n+\t\tif (IWL_FW_CHECK(mvm,\n+\t\t\t\t pkt_len !=\n+\t\t\t\t struct_size(mcc_resp_v8, channels, n_channels),\n+\t\t\t\t \"invalid MCC v8 response size: %u (n_channels=%d)\\n\",\n+\t\t\t\t pkt_len, n_channels)) {\n \t\t\tresp_cp = ERR_PTR(-EINVAL);\n \t\t\tgoto exit;\n \t\t}\n@@ -464,9 +475,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\n \t\t\t IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT)) {\n \t\tstruct iwl_mcc_update_resp_v4 *mcc_resp_v4 = (void *)pkt-\u003edata;\n \n+\t\tif (IWL_FW_CHECK(mvm, pkt_len \u003c sizeof(*mcc_resp_v4),\n+\t\t\t\t \"MCC v4 response too short: %u\\n\", pkt_len)) {\n+\t\t\tresp_cp = ERR_PTR(-EINVAL);\n+\t\t\tgoto exit;\n+\t\t}\n+\n \t\tn_channels = __le32_to_cpu(mcc_resp_v4-\u003en_channels);\n-\t\tif (iwl_rx_packet_payload_len(pkt) !=\n-\t\t struct_size(mcc_resp_v4, channels, n_channels)) {\n+\t\tif (IWL_FW_CHECK(mvm,\n+\t\t\t\t pkt_len !=\n+\t\t\t\t struct_size(mcc_resp_v4, channels, n_channels),\n+\t\t\t\t \"invalid MCC v4 response size: %u (n_channels=%d)\\n\",\n+\t\t\t\t pkt_len, n_channels)) {\n \t\t\tresp_cp = ERR_PTR(-EINVAL);\n \t\t\tgoto exit;\n \t\t}\n@@ -489,9 +509,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\n \t} else {\n \t\tstruct iwl_mcc_update_resp_v3 *mcc_resp_v3 = (void *)pkt-\u003edata;\n \n+\t\tif (IWL_FW_CHECK(mvm, pkt_len \u003c sizeof(*mcc_resp_v3),\n+\t\t\t\t \"MCC v3 response too short: %u\\n\", pkt_len)) {\n+\t\t\tresp_cp = ERR_PTR(-EINVAL);\n+\t\t\tgoto exit;\n+\t\t}\n+\n \t\tn_channels = __le32_to_cpu(mcc_resp_v3-\u003en_channels);\n-\t\tif (iwl_rx_packet_payload_len(pkt) !=\n-\t\t struct_size(mcc_resp_v3, channels, n_channels)) {\n+\t\tif (IWL_FW_CHECK(mvm,\n+\t\t\t\t pkt_len !=\n+\t\t\t\t struct_size(mcc_resp_v3, channels, n_channels),\n+\t\t\t\t \"invalid MCC v3 response size: %u (n_channels=%d)\\n\",\n+\t\t\t\t pkt_len, n_channels)) {\n \t\t\tresp_cp = ERR_PTR(-EINVAL);\n \t\t\tgoto exit;\n \t\t}\n"
} |
| 2/1 | 2026/08/31 18:39 | agent | patch-evaluator |
1mModel:core Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies MCC response packet size validation in the Intel iwlwifi wireless driver (iwlmvm). This driver requires physical Intel PCIe wireless network adapters and proprietary firmware, which are not emulated in standard virtualized environments like QEMU/GCE. Therefore, this code is unreachable during fuzzing.",
"WorthFuzzing": false
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). - Code in vendor-specific PCIe switch, SmartNIC, or GPU drivers (e.g., mlxsw, pds_core, qed, ionic, amdgpu) that require physical PCIe hardware cards not emulated in standard QEMU. - Driver .remove, .shutdown, or pci_unregister_driver teardown callbacks (e.g., igb_remove) that are executed only during PCI hot-unplug or sysfs driver unbind operations. If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. Prefer non-static, non-inlined API entrypoint functions over internal static helper functions (which are inlined by the compiler and do not have distinct symbol addresses). 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Also check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed for Kbuild to compile the code statically into vmlinux. List them in the EnableConfigs output array, and DO NOT add a '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: For your convenience, here is the diff of the changes:
commit ceffddf09aad78e2b4a975e0c9e575161b28076c
Author: syz-cluster <triage@syzkaller.com>
Date: Mon Aug 31 18:39:03 2026 +0000
syz-cluster: applied patch under review
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
index 953218f1e025a..f76e57399c1f3 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
- * Copyright (C) 2012-2014, 2018-2019, 2021-2025 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2019, 2021-2026 Intel Corporation
* Copyright (C) 2013-2015 Intel Mobile Communications GmbH
* Copyright (C) 2016-2017 Intel Deutschland GmbH
*/
@@ -416,6 +416,7 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
int ret, resp_ver;
u32 status;
int resp_len, n_channels;
+ unsigned int pkt_len;
u16 mcc;
if (WARN_ON_ONCE(!iwl_mvm_is_lar_supported(mvm)))
@@ -431,6 +432,7 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
return ERR_PTR(ret);
pkt = cmd.resp_pkt;
+ pkt_len = iwl_rx_packet_payload_len(pkt);
resp_ver = iwl_fw_lookup_notif_ver(mvm->fw, IWL_ALWAYS_LONG_GROUP,
MCC_UPDATE_CMD, 0);
@@ -439,9 +441,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
if (resp_ver >= 8) {
struct iwl_mcc_update_resp_v8 *mcc_resp_v8 = (void *)pkt->data;
+ if (IWL_FW_CHECK(mvm, pkt_len < sizeof(*mcc_resp_v8),
+ "MCC v8 response too short: %u\n", pkt_len)) {
+ resp_cp = ERR_PTR(-EINVAL);
+ goto exit;
+ }
+
n_channels = __le32_to_cpu(mcc_resp_v8->n_channels);
- if (iwl_rx_packet_payload_len(pkt) !=
- struct_size(mcc_resp_v8, channels, n_channels)) {
+ if (IWL_FW_CHECK(mvm,
+ pkt_len !=
+ struct_size(mcc_resp_v8, channels, n_channels),
+ "invalid MCC v8 response size: %u (n_channels=%d)\n",
+ pkt_len, n_channels)) {
resp_cp = ERR_PTR(-EINVAL);
goto exit;
}
@@ -464,9 +475,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT)) {
struct iwl_mcc_update_resp_v4 *mcc_resp_v4 = (void *)pkt->data;
+ if (IWL_FW_CHECK(mvm, pkt_len < sizeof(*mcc_resp_v4),
+ "MCC v4 response too short: %u\n", pkt_len)) {
+ resp_cp = ERR_PTR(-EINVAL);
+ goto exit;
+ }
+
n_channels = __le32_to_cpu(mcc_resp_v4->n_channels);
- if (iwl_rx_packet_payload_len(pkt) !=
- struct_size(mcc_resp_v4, channels, n_channels)) {
+ if (IWL_FW_CHECK(mvm,
+ pkt_len !=
+ struct_size(mcc_resp_v4, channels, n_channels),
+ "invalid MCC v4 response size: %u (n_channels=%d)\n",
+ pkt_len, n_channels)) {
resp_cp = ERR_PTR(-EINVAL);
goto exit;
}
@@ -489,9 +509,18 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
} else {
struct iwl_mcc_update_resp_v3 *mcc_resp_v3 = (void *)pkt->data;
+ if (IWL_FW_CHECK(mvm, pkt_len < sizeof(*mcc_resp_v3),
+ "MCC v3 response too short: %u\n", pkt_len)) {
+ resp_cp = ERR_PTR(-EINVAL);
+ goto exit;
+ }
+
n_channels = __le32_to_cpu(mcc_resp_v3->n_channels);
- if (iwl_rx_packet_payload_len(pkt) !=
- struct_size(mcc_resp_v3, channels, n_channels)) {
+ if (IWL_FW_CHECK(mvm,
+ pkt_len !=
+ struct_size(mcc_resp_v3, channels, n_channels),
+ "invalid MCC v3 response size: %u (n_channels=%d)\n",
+ pkt_len, n_channels)) {
resp_cp = ERR_PTR(-EINVAL);
goto exit;
}
|
| 3/2 | 2026/08/31 18:39 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 3426 output: 34 thoughts: 296 Thoughts: **Analyzing the Fuzzing Potential of This Patch** Okay, let's dive into this patch and assess if it's a good candidate for fuzzing. The patch touches `drivers/net/wireless/intel/iwlwifi/mvm/nvm.c`, specifically `iwl_mvm_update_mcc`. Right off the bat, I recognize this is the Intel iwlwifi driver, specifically the `IWLMVM` / `IWLWIFI` component. Good, that narrows down the scope. Now comes the crucial question: can I realistically reach this code in a virtualized environment like QEMU or Google Compute Engine, or are we dealing with physical PCIe hardware that’s not emulated in the typical QEMU setup? I've got the guidelines in mind: anything that's inherently unreachable in a virtualized setting, or requires specific, non-emulated hardware like vendor-specific PCIe switch drivers, is a no-go for fuzzing purposes. Wait, I need to double-check this: does iwlwifi depend on physical PCIe cards, or is there a pathway to simulate or virtualize its operation? I need to look into this more deeply. I should probably check the kernel sources for iwlwifi and see if there are any hints about a simulated bus or if it's strictly PCI/hardware. |
| 4/2 | 2026/08/31 18:39 | tool | grepper |
0mArgs:{
"Expression": "iwlwifi",
"PathPrefix": "drivers/net/wireless/intel/iwlwifi"
}Results: {
"Output": "\nFull output is too long, showing 500 out of 1515 lines.\nUse more precise expression if possible.\n\ndrivers/net/wireless/intel/iwlwifi/Kconfig=2=config IWLWIFI\ndrivers/net/wireless/intel/iwlwifi/Kconfig:3:\ttristate \"Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) \"\ndrivers/net/wireless/intel/iwlwifi/Kconfig-4-\tdepends on PCI \u0026\u0026 HAS_IOMEM \u0026\u0026 CFG80211\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-34-\ndrivers/net/wireless/intel/iwlwifi/Kconfig:35:\t \u003chttps://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi\u003e.\ndrivers/net/wireless/intel/iwlwifi/Kconfig-36-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-44-\t say M here and read \u003cfile:Documentation/kbuild/modules.rst\u003e. The\ndrivers/net/wireless/intel/iwlwifi/Kconfig:45:\t module will be called iwlwifi.\ndrivers/net/wireless/intel/iwlwifi/Kconfig-46-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=49=config IWLWIFI_KUNIT_TESTS\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-53-\thelp\ndrivers/net/wireless/intel/iwlwifi/Kconfig:54:\t Enable this option for iwlwifi kunit tests.\ndrivers/net/wireless/intel/iwlwifi/Kconfig-55-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=66=config IWLDVM\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-71-\t of the devices that use this firmware is available here:\ndrivers/net/wireless/intel/iwlwifi/Kconfig:72:\t https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware\ndrivers/net/wireless/intel/iwlwifi/Kconfig-73-\ndrivers/net/wireless/intel/iwlwifi/Kconfig=74=config IWLMVM\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-81-\t of the devices that use this firmware is available here:\ndrivers/net/wireless/intel/iwlwifi/Kconfig:82:\t https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware\ndrivers/net/wireless/intel/iwlwifi/Kconfig-83-\ndrivers/net/wireless/intel/iwlwifi/Kconfig=84=config IWLMLD\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-91-\t The list of the devices that use this firmware is available here:\ndrivers/net/wireless/intel/iwlwifi/Kconfig:92:\t https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware\ndrivers/net/wireless/intel/iwlwifi/Kconfig-93-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=95=config IWLWIFI_OPMODE_MODULAR\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-101-\ndrivers/net/wireless/intel/iwlwifi/Kconfig:102:comment \"WARNING: iwlwifi is useless without IWLDVM or IWLMVM or IWLMLD\"\ndrivers/net/wireless/intel/iwlwifi/Kconfig-103-\tdepends on IWLDVM=n \u0026\u0026 IWLMVM=n \u0026\u0026 IWLMLD=n\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=107=config IWLWIFI_DEBUG\ndrivers/net/wireless/intel/iwlwifi/Kconfig:108:\tbool \"Enable full debugging output in the iwlwifi driver\"\ndrivers/net/wireless/intel/iwlwifi/Kconfig-109-\thelp\ndrivers/net/wireless/intel/iwlwifi/Kconfig:110:\t This option will enable debug tracing output for the iwlwifi drivers\ndrivers/net/wireless/intel/iwlwifi/Kconfig-111-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-115-\ndrivers/net/wireless/intel/iwlwifi/Kconfig:116:\t\t/sys/module/iwlwifi/parameters/debug\ndrivers/net/wireless/intel/iwlwifi/Kconfig-117-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-121-\ndrivers/net/wireless/intel/iwlwifi/Kconfig:122:\t\t % echo 0x43fff \u003e /sys/module/iwlwifi/parameters/debug\ndrivers/net/wireless/intel/iwlwifi/Kconfig-123-\ndrivers/net/wireless/intel/iwlwifi/Kconfig-124-\t You can find the list of debug mask values in:\ndrivers/net/wireless/intel/iwlwifi/Kconfig:125:\t\t drivers/net/wireless/iwlwifi/iwl-debug.h\ndrivers/net/wireless/intel/iwlwifi/Kconfig-126-\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=131=config IWLWIFI_DEBUGFS\ndrivers/net/wireless/intel/iwlwifi/Kconfig:132:\tbool \"iwlwifi debugfs support\"\ndrivers/net/wireless/intel/iwlwifi/Kconfig-133-\tdepends on MAC80211_DEBUGFS\ndrivers/net/wireless/intel/iwlwifi/Kconfig-134-\thelp\ndrivers/net/wireless/intel/iwlwifi/Kconfig:135:\t Enable creation of debugfs files for the iwlwifi drivers. This\ndrivers/net/wireless/intel/iwlwifi/Kconfig-136-\t is a low-impact option that allows getting insight into the\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=139=config IWLWIFI_DEVICE_TRACING\ndrivers/net/wireless/intel/iwlwifi/Kconfig:140:\tbool \"iwlwifi device access tracing\"\ndrivers/net/wireless/intel/iwlwifi/Kconfig-141-\tdepends on EVENT_TRACING\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-144-\t Say Y here to trace all commands, including TX frames and IO\ndrivers/net/wireless/intel/iwlwifi/Kconfig:145:\t accesses, sent to the device. If you say yes, iwlwifi will\ndrivers/net/wireless/intel/iwlwifi/Kconfig-146-\t register with the ftrace framework for event tracing and dump\n--\ndrivers/net/wireless/intel/iwlwifi/Makefile-2-# common\ndrivers/net/wireless/intel/iwlwifi/Makefile:3:obj-$(CONFIG_IWLWIFI)\t+= iwlwifi.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:4:iwlwifi-objs\t\t+= iwl-io.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:5:iwlwifi-objs\t\t+= iwl-drv.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:6:iwlwifi-objs\t\t+= iwl-debug.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:7:iwlwifi-objs\t\t+= iwl-nvm-utils.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:8:iwlwifi-objs\t\t+= iwl-utils.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:9:iwlwifi-objs\t\t+= iwl-phy-db.o iwl-nvm-parse.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-10-\ndrivers/net/wireless/intel/iwlwifi/Makefile-11-# Bus\ndrivers/net/wireless/intel/iwlwifi/Makefile:12:iwlwifi-objs\t\t+= pcie/ctxt-info.o pcie/ctxt-info-v2.o pcie/drv.o pcie/utils.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:13:iwlwifi-objs\t\t+= pcie/gen1_2/rx.o pcie/gen1_2/tx.o pcie/gen1_2/trans.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:14:iwlwifi-objs\t\t+= pcie/gen1_2/trans-gen2.o pcie/gen1_2/tx-gen2.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-15-\ndrivers/net/wireless/intel/iwlwifi/Makefile=16=CFLAGS_pcie/drv.o += -Wno-override-init\n--\ndrivers/net/wireless/intel/iwlwifi/Makefile-18-# combined MAC/RF configurations\ndrivers/net/wireless/intel/iwlwifi/Makefile:19:iwlwifi-$(CONFIG_IWLDVM) += cfg/1000.o cfg/2000.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:20:iwlwifi-$(CONFIG_IWLDVM) += cfg/5000.o cfg/6000.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:21:iwlwifi-$(CONFIG_IWLMVM) += cfg/7000.o cfg/8000.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-22-# MAC configurations\ndrivers/net/wireless/intel/iwlwifi/Makefile:23:iwlwifi-$(CONFIG_IWLMVM) += cfg/9000.o cfg/22000.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:24:iwlwifi-$(CONFIG_IWLMVM) += cfg/ax210.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:25:iwlwifi-$(CONFIG_IWLMVM) += cfg/bz.o cfg/sc.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:26:iwlwifi-$(CONFIG_IWLMLD) += cfg/bz.o cfg/sc.o cfg/dr.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-27-# RF configurations\ndrivers/net/wireless/intel/iwlwifi/Makefile:28:iwlwifi-$(CONFIG_IWLMVM) += cfg/rf-jf.o cfg/rf-hr.o cfg/rf-gf.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:29:iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o cfg/rf-wh.o cfg/rf-pe.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-30-\ndrivers/net/wireless/intel/iwlwifi/Makefile:31:iwlwifi-objs\t\t+= iwl-dbg-tlv.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:32:iwlwifi-objs\t\t+= iwl-trans.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-33-\ndrivers/net/wireless/intel/iwlwifi/Makefile:34:iwlwifi-objs\t\t+= fw/img.o fw/notif-wait.o fw/rs.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:35:iwlwifi-objs\t\t+= fw/dbg.o fw/dbg-old.o fw/pnvm.o fw/dump.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:36:iwlwifi-objs\t\t+= fw/regulatory.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:37:iwlwifi-$(CONFIG_IWLMVM) += fw/paging.o fw/smem.o fw/init.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:38:iwlwifi-$(CONFIG_IWLMLD) += fw/smem.o fw/init.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:39:iwlwifi-$(CONFIG_ACPI) += fw/acpi.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:40:iwlwifi-$(CONFIG_EFI)\t+= fw/uefi.o\ndrivers/net/wireless/intel/iwlwifi/Makefile:41:iwlwifi-$(CONFIG_IWLWIFI_DEBUGFS) += fw/debugfs.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-42-\ndrivers/net/wireless/intel/iwlwifi/Makefile:43:iwlwifi-objs += $(iwlwifi-m)\ndrivers/net/wireless/intel/iwlwifi/Makefile-44-\ndrivers/net/wireless/intel/iwlwifi/Makefile:45:iwlwifi-$(CONFIG_IWLWIFI_DEVICE_TRACING) += iwl-devtrace.o\ndrivers/net/wireless/intel/iwlwifi/Makefile-46-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c-24-\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c:25:#define IWL1000_FW_PRE \"iwlwifi-1000\"\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c-26-#define IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c-27-\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c:28:#define IWL100_FW_PRE \"iwlwifi-100\"\ndrivers/net/wireless/intel/iwlwifi/cfg/1000.c-29-#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE \"-\" __stringify(api) \".ucode\"\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-30-\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c:31:#define IWL2030_FW_PRE \"iwlwifi-2030\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-32-#define IWL2030_MODULE_FIRMWARE(api) IWL2030_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-33-\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c:34:#define IWL2000_FW_PRE \"iwlwifi-2000\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-35-#define IWL2000_MODULE_FIRMWARE(api) IWL2000_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-36-\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c:37:#define IWL105_FW_PRE \"iwlwifi-105\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-38-#define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-39-\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c:40:#define IWL135_FW_PRE \"iwlwifi-135\"\ndrivers/net/wireless/intel/iwlwifi/cfg/2000.c-41-#define IWL135_MODULE_FIRMWARE(api) IWL135_FW_PRE \"-\" __stringify(api) \".ucode\"\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c-17-\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c:18:#define IWL_CC_A_FW_PRE\t\t\t\"iwlwifi-cc-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c:19:#define IWL_QU_B_HR_B_FW_PRE\t\t\"iwlwifi-Qu-b0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c:20:#define IWL_QU_C_HR_B_FW_PRE\t\t\"iwlwifi-Qu-c0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c:21:#define IWL_QUZ_A_HR_B_FW_PRE\t\t\"iwlwifi-QuZ-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/22000.c-22-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c-26-\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c:27:#define IWL5000_FW_PRE \"iwlwifi-5000\"\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c-28-#define IWL5000_MODULE_FIRMWARE(api) IWL5000_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c-29-\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c:30:#define IWL5150_FW_PRE \"iwlwifi-5150\"\ndrivers/net/wireless/intel/iwlwifi/cfg/5000.c-31-#define IWL5150_MODULE_FIRMWARE(api) IWL5150_FW_PRE \"-\" __stringify(api) \".ucode\"\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-39-\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c:40:#define IWL6000_FW_PRE \"iwlwifi-6000\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-41-#define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-42-\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c:43:#define IWL6050_FW_PRE \"iwlwifi-6050\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-44-#define IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-45-\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c:46:#define IWL6005_FW_PRE \"iwlwifi-6000g2a\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-47-#define IWL6005_MODULE_FIRMWARE(api) IWL6005_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-48-\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c:49:#define IWL6030_FW_PRE \"iwlwifi-6000g2b\"\ndrivers/net/wireless/intel/iwlwifi/cfg/6000.c-50-#define IWL6030_MODULE_FIRMWARE(api) IWL6030_FW_PRE \"-\" __stringify(api) \".ucode\"\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-36-\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c:37:#define IWL7260_FW_PRE \"iwlwifi-7260\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-38-#define IWL7260_MODULE_FIRMWARE(api) IWL7260_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-39-\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c:40:#define IWL3160_FW_PRE \"iwlwifi-3160\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-41-#define IWL3160_MODULE_FIRMWARE(api) IWL3160_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-42-\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c:43:#define IWL3168_FW_PRE \"iwlwifi-3168\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-44-#define IWL3168_MODULE_FIRMWARE(api) IWL3168_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-45-\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c:46:#define IWL7265_FW_PRE \"iwlwifi-7265\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-47-#define IWL7265_MODULE_FIRMWARE(api) IWL7265_FW_PRE \"-\" __stringify(api) \".ucode\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-48-\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c:49:#define IWL7265D_FW_PRE \"iwlwifi-7265D\"\ndrivers/net/wireless/intel/iwlwifi/cfg/7000.c-50-#define IWL7265D_MODULE_FIRMWARE(api) IWL7265D_FW_PRE \"-\" __stringify(api) \".ucode\"\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c-29-\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c:30:#define IWL8000_FW_PRE \"iwlwifi-8000C\"\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c-31-#define IWL8000_MODULE_FIRMWARE(api) \\\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c-33-\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c:34:#define IWL8265_FW_PRE \"iwlwifi-8265\"\ndrivers/net/wireless/intel/iwlwifi/cfg/8000.c-35-#define IWL8265_MODULE_FIRMWARE(api) \\\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/9000.c-21-\ndrivers/net/wireless/intel/iwlwifi/cfg/9000.c:22:#define IWL9000_FW_PRE \"iwlwifi-9000-pu-b0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/9000.c:23:#define IWL9260_FW_PRE \"iwlwifi-9260-th-b0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/9000.c-24-#define IWL9000_MODULE_FIRMWARE(api) \\\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c-17-\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:18:#define IWL_SO_A_GF_A_FW_PRE\t\t\"iwlwifi-so-a0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:19:#define IWL_TY_A_GF_A_FW_PRE\t\t\"iwlwifi-ty-a0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:20:#define IWL_MA_A_GF_A_FW_PRE\t\t\"iwlwifi-ma-a0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:21:#define IWL_MA_B_GF_A_FW_PRE\t\t\"iwlwifi-ma-b0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:22:#define IWL_SO_A_GF4_A_FW_PRE\t\t\"iwlwifi-so-a0-gf4-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:23:#define IWL_MA_A_GF4_A_FW_PRE\t\t\"iwlwifi-ma-a0-gf4-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:24:#define IWL_MA_B_GF4_A_FW_PRE\t\t\"iwlwifi-ma-b0-gf4-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:25:#define IWL_SO_A_HR_B_FW_PRE\t\t\"iwlwifi-so-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:26:#define IWL_MA_A_HR_B_FW_PRE\t\t\"iwlwifi-ma-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c:27:#define IWL_MA_B_HR_B_FW_PRE\t\t\"iwlwifi-ma-b0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/ax210.c-28-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c-17-\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c:18:#define IWL_BZ_A_FM_B_FW_PRE\t\t\"iwlwifi-bz-a0-fm-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c:19:#define IWL_BZ_A_FM_C_FW_PRE\t\t\"iwlwifi-bz-a0-fm-c0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c:20:#define IWL_BZ_A_FM4_B_FW_PRE\t\t\"iwlwifi-bz-a0-fm4-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c:21:#define IWL_GL_B_FM_B_FW_PRE\t\t\"iwlwifi-gl-b0-fm-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c:22:#define IWL_GL_C_FM_C_FW_PRE\t\t\"iwlwifi-gl-c0-fm-c0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/bz.c-23-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/dr.c-16-\ndrivers/net/wireless/intel/iwlwifi/cfg/dr.c:17:#define IWL_DR_A_PE_A_FW_PRE\t\t\"iwlwifi-dr-a0-pe-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/dr.c-18-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c-13-\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c:14:#define IWL_BZ_A_GF_A_FW_PRE\t\t\"iwlwifi-bz-a0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c:15:#define IWL_BZ_A_GF4_A_FW_PRE\t\t\"iwlwifi-bz-a0-gf4-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c:16:#define IWL_SC_A_GF_A_FW_PRE\t\t\"iwlwifi-sc-a0-gf-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c:17:#define IWL_SC_A_GF4_A_FW_PRE\t\t\"iwlwifi-sc-a0-gf4-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c-18-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c-13-\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c:14:#define IWL_BZ_A_HR_B_FW_PRE\t\t\"iwlwifi-bz-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c:15:#define IWL_SC_A_HR_A_FW_PRE\t\t\"iwlwifi-sc-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c:16:#define IWL_SC_A_HR_B_FW_PRE\t\t\"iwlwifi-sc-a0-hr-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c-17-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c-13-\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c:14:#define IWL_QU_B_JF_B_FW_PRE\t\t\"iwlwifi-Qu-b0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c:15:#define IWL_QU_C_JF_B_FW_PRE\t\t\"iwlwifi-Qu-c0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c:16:#define IWL_QUZ_A_JF_B_FW_PRE\t\t\"iwlwifi-QuZ-a0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c:17:#define IWL_SO_A_JF_B_FW_PRE\t\t\"iwlwifi-so-a0-jf-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c-18-\n--\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c-17-\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c:18:#define IWL_SC_A_FM_B_FW_PRE\t\t\"iwlwifi-sc-a0-fm-b0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c:19:#define IWL_SC_A_FM_C_FW_PRE\t\t\"iwlwifi-sc-a0-fm-c0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c:20:#define IWL_SC_A_WH_A_FW_PRE\t\t\"iwlwifi-sc-a0-wh-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c:21:#define IWL_SC2_A_FM_C_FW_PRE\t\t\"iwlwifi-sc2-a0-fm-c0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c:22:#define IWL_SC2_A_WH_A_FW_PRE\t\t\"iwlwifi-sc2-a0-wh-a0\"\ndrivers/net/wireless/intel/iwlwifi/cfg/sc.c-23-\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c=2262=static ssize_t iwl_dbgfs_fw_restart_write(struct file *file,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2266-\tstruct iwl_priv *priv = file-\u003eprivate_data;\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c:2267:\tbool fw_restart = iwlwifi_mod_params.fw_restart;\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2268-\tint __maybe_unused ret;\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2269-\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c:2270:\tiwlwifi_mod_params.fw_restart = true;\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2271-\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2278-\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c:2279:\tiwlwifi_mod_params.fw_restart = fw_restart;\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2280-\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c=2313=void iwl_dbgfs_register(struct iwl_priv *priv, struct dentry *dbgfs_dir)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2380-\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c:2381:\t\tdebugfs_create_symlink(\"iwlwifi\", mac80211_dir, buf);\ndrivers/net/wireless/intel/iwlwifi/dvm/debugfs.c-2382-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/dev.h=210=struct iwl_sensitivity_ranges {\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/dev.h-244- * Naming convention --\ndrivers/net/wireless/intel/iwlwifi/dvm/dev.h:245: * iwl_ \u003c-- Is part of iwlwifi\ndrivers/net/wireless/intel/iwlwifi/dvm/dev.h-246- * iwlXXXX_ \u003c-- Hardware specific (implemented in iwl-XXXX.c for XXXX)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/eeprom.c=1059=iwl_parse_eeprom_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/eeprom.c-1118-\tdata-\u003esku_cap_ipan_enable = sku \u0026 EEPROM_SKU_CAP_IPAN_ENABLE;\ndrivers/net/wireless/intel/iwlwifi/dvm/eeprom.c:1119:\tif (iwlwifi_mod_params.disable_11n \u0026 IWL_DISABLE_HT_ALL)\ndrivers/net/wireless/intel/iwlwifi/dvm/eeprom.c-1120-\t\tdata-\u003esku_cap_11n_enable = false;\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/led.c=155=void iwl_leds_init(struct iwl_priv *priv)\ndrivers/net/wireless/intel/iwlwifi/dvm/led.c-156-{\ndrivers/net/wireless/intel/iwlwifi/dvm/led.c:157:\tint mode = iwlwifi_mod_params.led_mode;\ndrivers/net/wireless/intel/iwlwifi/dvm/led.c-158-\tint ret;\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c=201=void iwlagn_send_advance_bt_config(struct iwl_priv *priv)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c-262-\t */\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c:263:\tif (!iwlwifi_mod_params.bt_coex_active ||\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c-264-\t priv-\u003eiw_mode == NL80211_IFTYPE_ADHOC) {\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c=1034=int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c-1135-\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c:1136:\tif (!iwlwifi_mod_params.swcrypto) {\ndrivers/net/wireless/intel/iwlwifi/dvm/lib.c-1137-\t\t/* mark all keys clear */\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c=78=int iwlagn_mac_setup_register(struct iwl_priv *priv,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-121-\tif (priv-\u003efw-\u003eucode_capa.flags \u0026 IWL_UCODE_TLV_FLAGS_MFP \u0026\u0026\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c:122:\t !iwlwifi_mod_params.swcrypto)\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-123-\t\tieee80211_hw_set(hw, MFP_CAPABLE);\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-152-\t\t\t\t\t WIPHY_WOWLAN_RFKILL_RELEASE;\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c:153:\t\tif (!iwlwifi_mod_params.swcrypto)\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-154-\t\t\tpriv-\u003ewowlan_support.flags |=\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-166-\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c:167:\tif (iwlwifi_mod_params.power_save)\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-168-\t\thw-\u003ewiphy-\u003eflags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c=325=static void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-330-\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c:331:\tif (iwlwifi_mod_params.swcrypto)\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-332-\t\treturn;\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c=588=static int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-600-\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c:601:\tif (iwlwifi_mod_params.swcrypto) {\ndrivers/net/wireless/intel/iwlwifi/dvm/mac80211.c-602-\t\tIWL_DEBUG_MAC80211(priv, \"leave - hwcrypto disabled\\n\");\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=398=static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-434-\t\tif (mode == 0) {\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:435:\t\t\ttrace_iwlwifi_dev_ucode_cont_event(\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-436-\t\t\t\t\tpriv-\u003etrans-\u003edev, 0, time, ev);\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-438-\t\t\tdata = iwl_read32(priv-\u003etrans, HBUS_TARG_MEM_RDAT);\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:439:\t\t\ttrace_iwlwifi_dev_ucode_cont_event(\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-440-\t\t\t\t\tpriv-\u003etrans-\u003edev, time, data, ev);\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=447=static void iwl_continuous_event_trace(struct iwl_priv *priv)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-503-\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:504:\t\ttrace_iwlwifi_dev_ucode_wrap_event(priv-\u003etrans-\u003edev,\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-505-\t\t\t\tnum_wraps - priv-\u003eevent_log.num_wraps,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=737=static void iwl_send_bt_config(struct iwl_priv *priv)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-745-\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:746:\tif (!iwlwifi_mod_params.bt_coex_active)\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-747-\t\tbt_cmd.flags = BT_COEX_DISABLE;\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=1233=static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1324-\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:1325:\tswitch (iwlwifi_mod_params.amsdu_size) {\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1326-\tcase IWL_AMSDU_DEF:\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1336-\t\tpr_err(\"Unsupported amsdu_size: %d\\n\",\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:1337:\t\t iwlwifi_mod_params.amsdu_size);\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1338-\t}\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=1698=static int iwl_print_event_log(struct iwl_priv *priv, u32 start_idx,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1747-\t\t\t} else {\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:1748:\t\t\t\ttrace_iwlwifi_dev_ucode_event(trans-\u003edev, 0,\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1749-\t\t\t\t\ttime, ev);\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1761-\t\t\t\t\ttime, data, ev);\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:1762:\t\t\t\ttrace_iwlwifi_dev_ucode_event(trans-\u003edev, time,\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1763-\t\t\t\t\tdata, ev);\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c=1912=static void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1945-\tif (!test_bit(STATUS_EXIT_PENDING, \u0026priv-\u003estatus)) {\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c:1946:\t\tif (iwlwifi_mod_params.fw_restart) {\ndrivers/net/wireless/intel/iwlwifi/dvm/main.c-1947-\t\t\tIWL_DEBUG_FW(priv,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c=271=static void iwl_power_build_cmd(struct iwl_priv *priv,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c-301-\t\tbut we pass 0-4 because it acts as an array index. */\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c:302:\t\tif (iwlwifi_mod_params.power_level \u003e IWL_POWER_INDEX_1 \u0026\u0026\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c:303:\t\t iwlwifi_mod_params.power_level \u003c= IWL_POWER_NUM)\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c-304-\t\t\tiwl_static_sleep_cmd(priv, cmd,\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c:305:\t\t\t\tiwlwifi_mod_params.power_level - 1, dtimper);\ndrivers/net/wireless/intel/iwlwifi/dvm/power.c-306-\t\telse\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/rx.c=604=static void iwlagn_pass_packet_to_mac80211(struct iwl_priv *priv,\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/rx.c-623-\t/* In case of HW accelerated crypto and bad decryption, drop */\ndrivers/net/wireless/intel/iwlwifi/dvm/rx.c:624:\tif (!iwlwifi_mod_params.swcrypto \u0026\u0026\ndrivers/net/wireless/intel/iwlwifi/dvm/rx.c-625-\t iwlagn_set_decrypted_flag(priv, hdr, ampdu_status, stats))\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/rxon.c=1023=int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)\n--\ndrivers/net/wireless/intel/iwlwifi/dvm/rxon.c-1102-\ndrivers/net/wireless/intel/iwlwifi/dvm/rxon.c:1103:\tiwl_set_rxon_hwcrypto(priv, ctx, !iwlwifi_mod_params.swcrypto);\ndrivers/net/wireless/intel/iwlwifi/dvm/rxon.c-1104-\n--\ndrivers/net/wireless/intel/iwlwifi/fw/img.h=136=struct iwl_fw_paging {\n--\ndrivers/net/wireless/intel/iwlwifi/fw/img.h-143-/**\ndrivers/net/wireless/intel/iwlwifi/fw/img.h:144: * enum iwl_fw_type - iwlwifi firmware type\ndrivers/net/wireless/intel/iwlwifi/fw/img.h-145- * @IWL_FW_DVM: DVM firmware\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c=499=void iwl_dbg_tlv_load_bin(struct device *dev, struct iwl_trans *trans)\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c-504-\ndrivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c:505:\tif (!iwlwifi_mod_params.enable_ini ||\ndrivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c-506-\t trans-\u003emac_cfg-\u003edevice_family \u003c= IWL_DEVICE_FAMILY_8000)\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c=13=void __iwl_ ##fn(struct device *dev, const char *fmt, ...)\t\\\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-22-\tdev_ ##fn(dev, \"%pV\", \u0026vaf);\t\t\t\t\\\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c:23:\ttrace_iwlwifi_ ##fn(\u0026vaf);\t\t\t\t\\\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-24-\tva_end(args);\t\t\t\t\t\t\\\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c=34=void __iwl_err(struct device *dev, enum iwl_err_mode mode, const char *fmt, ...)\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-60-\tvaf.va = \u0026args;\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c:61:\ttrace_iwlwifi_err(\u0026vaf);\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-62-\tva_end(args);\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c=67=void __iwl_dbg(struct device *dev,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-82-#endif\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c:83:\ttrace_iwlwifi_dbg(level, function, \u0026vaf);\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.c-84-\tva_end(args);\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h=16=static inline bool iwl_have_debug_level(u32 level)\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-18-#ifdef CONFIG_IWLWIFI_DEBUG\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h:19:\treturn iwlwifi_mod_params.debug_level \u0026 level;\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-20-#else\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h=102=do { \t\t\t\\\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-126- *\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h:127: *\t/sys/module/iwlwifi/parameters/debug\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-128- * when CONFIG_IWLWIFI_DEBUG=y.\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-129- *\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h:130: *\t/sys/kernel/debug/phy0/iwlwifi/debug/debug_level\ndrivers/net/wireless/intel/iwlwifi/iwl-debug.h-131- * when CONFIG_IWLWIFI_DEBUGFS=y.\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h-14-#undef TRACE_SYSTEM\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h:15:#define TRACE_SYSTEM iwlwifi_data\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h-16-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h:17:TRACE_EVENT(iwlwifi_dev_tx_tb,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h-18-\tTP_PROTO(const struct device *dev, struct sk_buff *skb,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h-36-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h:37:TRACE_EVENT(iwlwifi_dev_rx_data,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h-38-\tTP_PROTO(const struct device *dev,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-14-#undef TRACE_SYSTEM\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:15:#define TRACE_SYSTEM iwlwifi_io\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-16-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:17:TRACE_EVENT(iwlwifi_dev_ioread32,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-18-\tTP_PROTO(const struct device *dev, u32 offs, u32 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-33-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:34:TRACE_EVENT(iwlwifi_dev_iowrite8,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-35-\tTP_PROTO(const struct device *dev, u32 offs, u8 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-50-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:51:TRACE_EVENT(iwlwifi_dev_iowrite32,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-52-\tTP_PROTO(const struct device *dev, u32 offs, u32 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-67-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:68:TRACE_EVENT(iwlwifi_dev_iowrite64,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-69-\tTP_PROTO(const struct device *dev, u64 offs, u64 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-84-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:85:TRACE_EVENT(iwlwifi_dev_iowrite_prph32,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-86-\tTP_PROTO(const struct device *dev, u32 offs, u32 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-101-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:102:TRACE_EVENT(iwlwifi_dev_iowrite_prph64,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-103-\tTP_PROTO(const struct device *dev, u64 offs, u64 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-118-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:119:TRACE_EVENT(iwlwifi_dev_ioread_prph32,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-120-\tTP_PROTO(const struct device *dev, u32 offs, u32 val),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-135-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:136:TRACE_EVENT(iwlwifi_dev_irq,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-137-\tTP_PROTO(const struct device *dev),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-148-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:149:TRACE_EVENT(iwlwifi_dev_irq_msix,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-150-\tTP_PROTO(const struct device *dev, struct msix_entry *msix_entry,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-171-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h:172:TRACE_EVENT(iwlwifi_dev_ict_read,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h-173-\tTP_PROTO(const struct device *dev, u32 index, u32 value),\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-15-#undef TRACE_SYSTEM\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h:16:#define TRACE_SYSTEM iwlwifi\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-17-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h:18:TRACE_EVENT(iwlwifi_dev_hcmd,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-19-\tTP_PROTO(const struct device *dev,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-51-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h:52:TRACE_EVENT(iwlwifi_dev_rx,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-53-\tTP_PROTO(const struct device *dev,\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-72-\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h:73:TRACE_EVENT(iwlwifi_dev_tx,\ndrivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h-74-\tTP_PROTO(const struct device *dev, struct sk_buff *skb,\n\n"
} |
| 5/2 | 2026/08/31 18:39 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 19461 output: 41 thoughts: 95 Thoughts: **Analyzing the iwlwifi Driver** Okay, let's break this down. *iwlwifi*… right, it's a PCI driver. Specifically, it relies on PCI, HAS_IOMEM, and CFG80211, which makes sense. I need to understand this driver better, so I'm thinking, does *iwlwifi* have any sort of software emulation or mock functionality, or is it exclusively tied to the vendor's specific PCIe hardware? That's the core question here. I need to confirm whether I can work with it in an emulated environment. Hold on, before I dive too deep into the broader scope, let me take a look at `iwl_mvm_update_mcc`. How is that function called? And where is it being used? Understanding that function's context might provide the clues I need to determine how the driver works at a fundamental level. I need to see how the software interacts with the hardware, to understand it's operation. |
| 6/2 | 2026/08/31 18:39 | tool | grepper |
0mArgs:{
"Expression": "iwl_mvm_update_mcc",
"PathPrefix": "drivers/net/wireless/intel/iwlwifi"
}Results: {
"Output": "drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c=117=struct ieee80211_regdomain *iwl_mvm_get_regdomain(struct wiphy *wiphy,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/mac80211.c-131-\ndrivers/net/wireless/intel/iwlwifi/mvm/mac80211.c:132:\tresp = iwl_mvm_update_mcc(mvm, alpha2, src_id);\ndrivers/net/wireless/intel/iwlwifi/mvm/mac80211.c-133-\tif (IS_ERR_OR_NULL(resp)) {\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h=2322=struct iwl_mcc_update_resp_v8 *\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h:2323:iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h-2324-\t\t enum iwl_mcc_source src_id);\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/nvm.c=400=struct iwl_mcc_update_resp_v8 *\ndrivers/net/wireless/intel/iwlwifi/mvm/nvm.c:401:iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,\ndrivers/net/wireless/intel/iwlwifi/mvm/nvm.c-402-\t\t enum iwl_mcc_source src_id)\n"
} |
| 7/2 | 2026/08/31 18:39 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 20276 output: 24 thoughts: 37 Thoughts: **Checking for Robustness in the iwlwifi Driver** Okay, let's take a look at the `iwlwifi` driver. My initial thought is to assess its test coverage. I want to see if they've implemented any KUnit tests, which would be ideal. KUnit is a great framework for kernel-level unit testing, so that's the first place I'll look. I'll need to check the build configuration and the source code for signs of a simulated driver as well. Specifically, I need to check for a flag, likely something like `IWLWIFI_KUNIT_TESTS` in the build configuration. That would be the easiest way to identify if they're actually integrated. Hopefully, they have a solid test suite. |
| 8/2 | 2026/08/31 18:40 | tool | grepper |
0mArgs:{
"Expression": "IWLWIFI_KUNIT_TESTS"
}Results: {
"Output": "drivers/net/wireless/intel/iwlwifi/Kconfig=47=if IWLWIFI\ndrivers/net/wireless/intel/iwlwifi/Kconfig-48-\ndrivers/net/wireless/intel/iwlwifi/Kconfig:49:config IWLWIFI_KUNIT_TESTS\ndrivers/net/wireless/intel/iwlwifi/Kconfig-50-\ttristate\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig=95=config IWLWIFI_OPMODE_MODULAR\n--\ndrivers/net/wireless/intel/iwlwifi/Kconfig-99-\tdefault y if IWLMLD=m\ndrivers/net/wireless/intel/iwlwifi/Kconfig:100:\tdefault y if IWLWIFI_KUNIT_TESTS=m\ndrivers/net/wireless/intel/iwlwifi/Kconfig-101-\n--\ndrivers/net/wireless/intel/iwlwifi/Makefile=52=obj-$(CONFIG_IWLMLD)\t+= mld/\ndrivers/net/wireless/intel/iwlwifi/Makefile-53-\ndrivers/net/wireless/intel/iwlwifi/Makefile:54:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += tests/\ndrivers/net/wireless/intel/iwlwifi/Makefile-55-\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-config.h=513=struct iwl_dev_info {\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-config.h-531-\ndrivers/net/wireless/intel/iwlwifi/iwl-config.h:532:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/iwl-config.h-533-extern const struct iwl_dev_info iwl_dev_info_table[];\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-drv.h=85=bool iwl_drv_is_wifi7_supported(struct iwl_trans *trans);\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-drv.h-99-\ndrivers/net/wireless/intel/iwlwifi/iwl-drv.h:100:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/iwl-drv.h-101-#define EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(sym)\tEXPORT_SYMBOL_IF_KUNIT(sym)\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h=75=enum iwl_nvm_channel_flags {\n--\ndrivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h-93-\ndrivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h:94:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h-95-u32 iwl_nvm_get_regdom_bw_flags(const u16 *nvm_chan,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/Makefile=2=obj-$(CONFIG_IWLMLD) += iwlmld.o\ndrivers/net/wireless/intel/iwlwifi/mld/Makefile:3:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += tests/\ndrivers/net/wireless/intel/iwlwifi/mld/Makefile-4-\n--\ndrivers/net/wireless/intel/iwlwifi/mld/link.h=142=unsigned int iwl_mld_get_link_grade(struct iwl_mld *mld,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/link.h-144-\ndrivers/net/wireless/intel/iwlwifi/mld/link.h:145:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mld/link.h-146-s8 iwl_mld_get_dup_beacon_rssi_adjust(struct iwl_mld *mld,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/mld.c=341=EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_mld_groups);\ndrivers/net/wireless/intel/iwlwifi/mld/mld.c-342-\ndrivers/net/wireless/intel/iwlwifi/mld/mld.c:343:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mld/mld.c-344-const unsigned int global_iwl_mld_goups_size = ARRAY_SIZE(iwl_mld_groups);\n--\ndrivers/net/wireless/intel/iwlwifi/mld/mld.h=506=struct iwl_notif_struct_size {\n--\ndrivers/net/wireless/intel/iwlwifi/mld/mld.h-509-\ndrivers/net/wireless/intel/iwlwifi/mld/mld.h:510:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mld/mld.h-511-extern const struct iwl_hcmd_arr iwl_mld_groups[];\n--\ndrivers/net/wireless/intel/iwlwifi/mld/mlo.h=165=void iwl_mld_emlsr_block_tmp_non_bss(struct iwl_mld *mld);\ndrivers/net/wireless/intel/iwlwifi/mld/mlo.h-166-\ndrivers/net/wireless/intel/iwlwifi/mld/mlo.h:167:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mld/mlo.h-168-u32 iwl_mld_emlsr_pair_state(struct ieee80211_vif *vif,\n--\ndrivers/net/wireless/intel/iwlwifi/mld/notif.c=476=EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_mld_rx_handlers);\ndrivers/net/wireless/intel/iwlwifi/mld/notif.c-477-\ndrivers/net/wireless/intel/iwlwifi/mld/notif.c:478:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mld/notif.c-479-const unsigned int iwl_mld_rx_handlers_num = ARRAY_SIZE(iwl_mld_rx_handlers);\n--\ndrivers/net/wireless/intel/iwlwifi/mld/tests/Makefile=5=ccflags-y += -I$(src)/../\ndrivers/net/wireless/intel/iwlwifi/mld/tests/Makefile:6:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += iwlmld-tests.o\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/Makefile=2=obj-$(CONFIG_IWLMVM) += iwlmvm.o\ndrivers/net/wireless/intel/iwlwifi/mvm/Makefile:3:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += tests/\ndrivers/net/wireless/intel/iwlwifi/mvm/Makefile-4-iwlmvm-y += fw.o mac80211.o nvm.o ops.o phy-ctxt.o mac-ctxt.o\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h=1966=int iwl_mvm_disable_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif,\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h-1968-\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h:1969:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mvm/mvm.h-1970-extern const struct iwl_hcmd_arr iwl_mvm_groups[];\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/ops.c=736=EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_mvm_groups);\ndrivers/net/wireless/intel/iwlwifi/mvm/ops.c:737:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/mvm/ops.c-738-const unsigned int iwl_mvm_groups_size = ARRAY_SIZE(iwl_mvm_groups);\n--\ndrivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile=1=iwlmvm-tests-y += module.o hcmd.o\ndrivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile-2-\ndrivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile:3:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += iwlmvm-tests.o\n--\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c=1092=EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_dev_info_table);\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1093-\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c:1094:#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS)\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1095-const unsigned int iwl_dev_info_table_size = ARRAY_SIZE(iwl_dev_info_table);\n--\ndrivers/net/wireless/intel/iwlwifi/tests/Makefile=5=ccflags-y += -I$(src)/../\ndrivers/net/wireless/intel/iwlwifi/tests/Makefile-6-\ndrivers/net/wireless/intel/iwlwifi/tests/Makefile:7:obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += iwlwifi-tests.o\n"
} |
| 9/2 | 2026/08/31 18:40 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 23155 output: 39 thoughts: 419 Thoughts: **My Assessment of the `iwlwifi` Driver's Fuzzing Potential** Okay, let's break this down. First, I need to understand what `iwlwifi` is. Right, it's the Intel WiFi driver, specific to physical PCIe wireless adapters – the 7260s, 8265s, the AX series... you know, the usual suspects. Now, the key question for fuzzing is: can I even *use* or instantiate this driver without the physical Intel WiFi PCIe hardware, specifically in a virtual environment like QEMU or GCE? Let's refer to those rules of fuzzing and figure this out. I remember those specific conditions that disqualify a patch from being worth fuzzing: unreachable code paths in virtual environments, vendor-specific stuff tied to physical hardware that isn't emulated in standard QEMU, or teardown callbacks that only trigger during PCI hot-unplug or driver unbinding. Right, so can QEMU emulate these Intel `iwlwifi` PCI devices? A quick check reveals that standard QEMU doesn't directly emulate those. It focuses on the more common network adapters like e1000, rtl8139, virtio-net, and so on. Hmm, mac80211_hwsim… That's a separate virtual mac80211 driver. It's separate from `iwlwifi` and `iwlmvm`. Okay, so mac80211_hwsim is *not* an avenue to explore for fuzzing `iwlwifi`. Let me verify if I'm missing something, though. Perhaps there is a virtual bus or dummy device that is part of the iwlwifi package I'm missing. Time to explore `drivers/net/wireless/intel/iwlwifi/`... |
| 10/2 | 2026/08/31 18:40 | tool | grepper |
0mArgs:{
"Expression": "platform_driver|pci_driver",
"PathPrefix": "drivers/net/wireless/intel/iwlwifi"
}Results: {
"Output": "drivers/net/wireless/intel/iwlwifi/pcie/drv.c=1330=static void iwl_pci_dump(struct device *device)\n--\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1337-\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c:1338:static struct pci_driver iwl_pci_driver = {\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1339-\t.name = DRV_NAME,\n--\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c=1347=int __must_check iwl_pci_register_driver(void)\n--\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1349-\tint ret;\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c:1350:\tret = pci_register_driver(\u0026iwl_pci_driver);\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1351-\tif (ret)\n--\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c=1357=void iwl_pci_unregister_driver(void)\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1358-{\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c:1359:\tpci_unregister_driver(\u0026iwl_pci_driver);\ndrivers/net/wireless/intel/iwlwifi/pcie/drv.c-1360-}\n"
} |
| 11/2 | 2026/08/31 18:40 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 24438 output: 47 thoughts: 133 Thoughts: **My Analysis of the iwlwifi Driver's Interaction** Okay, so the `iwlwifi` driver, from what I'm seeing, primarily hooks into the system through the `iwl_pci_driver` module. This is the entry point, the thing that attaches directly to the physical PCIe Intel WiFi hardware. Makes sense, that's the foundation. Now, digging deeper, I see that a function called `iwl_mvm_update_mcc` is central to managing, or updating the device's capabilities, specifically by using the `MCC_UPDATE_CMD`. This command is then sent directly to the firmware that's *running* on the Intel WiFi hardware itself, using `iwl_mvm_send_cmd_pdev(mvm, &cmd)`. That's where the real intelligence seems to reside, in the firmware. And, it's not a one-way street, the driver actually cares about the device's response after sending this command, so it must parse the result from the firmware. Given this, I'm going to start reading the code for `iwl_mvm_update_mcc` function. According to the text, the source file is located in `drivers/net/wireless/intel/iwlwifi/mvm/nvm.c`. This will give me the lowdown on the specific update flow. |
| 12/2 | 2026/08/31 18:40 | tool | read-file |
0mArgs:{
"File": "drivers/net/wireless/intel/iwlwifi/mvm/nvm.c",
"FirstLine": 410,
"LineCount": 80
}Results: {
"Contents": " 410:\t\tstruct iwl_host_cmd cmd = {\n 411:\t\t\t.id = MCC_UPDATE_CMD,\n 412:\t\t\t.flags = CMD_WANT_SKB | CMD_SEND_IN_RFKILL,\n 413:\t\t\t.data = { \u0026mcc_update_cmd },\n 414:\t\t};\n 415:\t\n 416:\t\tint ret, resp_ver;\n 417:\t\tu32 status;\n 418:\t\tint resp_len, n_channels;\n 419:\t\tunsigned int pkt_len;\n 420:\t\tu16 mcc;\n 421:\t\n 422:\t\tif (WARN_ON_ONCE(!iwl_mvm_is_lar_supported(mvm)))\n 423:\t\t\treturn ERR_PTR(-EOPNOTSUPP);\n 424:\t\n 425:\t\tcmd.len[0] = sizeof(struct iwl_mcc_update_cmd);\n 426:\t\n 427:\t\tIWL_DEBUG_LAR(mvm, \"send MCC update to FW with '%c%c' src = %d\\n\",\n 428:\t\t\t alpha2[0], alpha2[1], src_id);\n 429:\t\n 430:\t\tret = iwl_mvm_send_cmd(mvm, \u0026cmd);\n 431:\t\tif (ret)\n 432:\t\t\treturn ERR_PTR(ret);\n 433:\t\n 434:\t\tpkt = cmd.resp_pkt;\n 435:\t\tpkt_len = iwl_rx_packet_payload_len(pkt);\n 436:\t\n 437:\t\tresp_ver = iwl_fw_lookup_notif_ver(mvm-\u003efw, IWL_ALWAYS_LONG_GROUP,\n 438:\t\t\t\t\t\t MCC_UPDATE_CMD, 0);\n 439:\t\n 440:\t\t/* Extract MCC response */\n 441:\t\tif (resp_ver \u003e= 8) {\n 442:\t\t\tstruct iwl_mcc_update_resp_v8 *mcc_resp_v8 = (void *)pkt-\u003edata;\n 443:\t\n 444:\t\t\tif (IWL_FW_CHECK(mvm, pkt_len \u003c sizeof(*mcc_resp_v8),\n 445:\t\t\t\t\t \"MCC v8 response too short: %u\\n\", pkt_len)) {\n 446:\t\t\t\tresp_cp = ERR_PTR(-EINVAL);\n 447:\t\t\t\tgoto exit;\n 448:\t\t\t}\n 449:\t\n 450:\t\t\tn_channels = __le32_to_cpu(mcc_resp_v8-\u003en_channels);\n 451:\t\t\tif (IWL_FW_CHECK(mvm,\n 452:\t\t\t\t\t pkt_len !=\n 453:\t\t\t\t\t struct_size(mcc_resp_v8, channels, n_channels),\n 454:\t\t\t\t\t \"invalid MCC v8 response size: %u (n_channels=%d)\\n\",\n 455:\t\t\t\t\t pkt_len, n_channels)) {\n 456:\t\t\t\tresp_cp = ERR_PTR(-EINVAL);\n 457:\t\t\t\tgoto exit;\n 458:\t\t\t}\n 459:\t\t\tresp_len = struct_size(resp_cp, channels, n_channels);\n 460:\t\t\tresp_cp = kzalloc(resp_len, GFP_KERNEL);\n 461:\t\t\tif (!resp_cp) {\n 462:\t\t\t\tresp_cp = ERR_PTR(-ENOMEM);\n 463:\t\t\t\tgoto exit;\n 464:\t\t\t}\n 465:\t\t\tresp_cp-\u003estatus = mcc_resp_v8-\u003estatus;\n 466:\t\t\tresp_cp-\u003emcc = mcc_resp_v8-\u003emcc;\n 467:\t\t\tresp_cp-\u003ecap = mcc_resp_v8-\u003ecap;\n 468:\t\t\tresp_cp-\u003esource_id = mcc_resp_v8-\u003esource_id;\n 469:\t\t\tresp_cp-\u003etime = mcc_resp_v8-\u003etime;\n 470:\t\t\tresp_cp-\u003egeo_info = mcc_resp_v8-\u003egeo_info;\n 471:\t\t\tresp_cp-\u003en_channels = mcc_resp_v8-\u003en_channels;\n 472:\t\t\tmemcpy(resp_cp-\u003echannels, mcc_resp_v8-\u003echannels,\n 473:\t\t\t n_channels * sizeof(__le32));\n 474:\t\t} else if (fw_has_capa(\u0026mvm-\u003efw-\u003eucode_capa,\n 475:\t\t\t\t IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT)) {\n 476:\t\t\tstruct iwl_mcc_update_resp_v4 *mcc_resp_v4 = (void *)pkt-\u003edata;\n 477:\t\n 478:\t\t\tif (IWL_FW_CHECK(mvm, pkt_len \u003c sizeof(*mcc_resp_v4),\n 479:\t\t\t\t\t \"MCC v4 response too short: %u\\n\", pkt_len)) {\n 480:\t\t\t\tresp_cp = ERR_PTR(-EINVAL);\n 481:\t\t\t\tgoto exit;\n 482:\t\t\t}\n 483:\t\n 484:\t\t\tn_channels = __le32_to_cpu(mcc_resp_v4-\u003en_channels);\n 485:\t\t\tif (IWL_FW_CHECK(mvm,\n 486:\t\t\t\t\t pkt_len !=\n 487:\t\t\t\t\t struct_size(mcc_resp_v4, channels, n_channels),\n 488:\t\t\t\t\t \"invalid MCC v4 response size: %u (n_channels=%d)\\n\",\n 489:\t\t\t\t\t pkt_len, n_channels)) {\n"
} |
| 13/2 | 2026/08/31 18:40 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 26394 output: 93 thoughts: 321 Thoughts: **My Assessment of the Fuzzing Suitability** Okay, so this code resides within `iwlwifi`, specifically the Intel MVM wireless driver (`IWLMVM`). This is a vendor-specific PCI driver designed for Intel WiFi hardware cards. Crucially, this hardware is *physical* PCIe hardware, not something emulated in standard QEMU or GCE virtual machines. That puts it directly into the category of "code paths impossible to reach in virtualized environments," even with software-emulated hardware like `usb gadget` or `mac80211_hwsim`. Also, this is a PCIe driver, placing it in the category of, "Code in vendor-specific PCIe switch, SmartNIC, or GPU drivers." Given these facts, `WorthFuzzing` has to be `false`. It's simply not feasible to test this code directly in a standard fuzzing setup. Before I commit to setting the results, I'm going to quickly review everything. Let me see... * `WorthFuzzing`: Definitely `false`. * `FocusSymbols`: Empty; that's right, nothing to focus on. * `EnableConfigs`: Empty; makes sense, no special configurations are needed. * `Reasoning`: Concise and accurate. The reasoning for `WorthFuzzing: false` is, "The modified code is in the Intel iwlwifi driver (specifically iwlmvm), which requires physical Intel PCIe wireless hardware that is not emulated in standard virtualized environments like QEMU or GCE." Alright, parameters verified. Let's confirm again: * `WorthFuzzing`: false * `FocusSymbols`: [] * `EnableConfigs`: [] * `Reasoning`: "The modified code is in the Intel iwlwifi driver (specifically iwlmvm), which requires physical Intel PCIe wireless hardware that is not emulated in standard virtualized environments like QEMU or GCE." Okay, I'm confident in these parameters. I'll execute `set-results` now. |
| 14/2 | 2026/08/31 18:41 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch modifies MCC response packet size validation in the Intel iwlwifi wireless driver (iwlmvm). This driver requires physical Intel PCIe wireless network adapters and proprietary firmware, which are not emulated in standard virtualized environments like QEMU/GCE. Therefore, this code is unreachable during fuzzing.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies MCC response packet size validation in the Intel iwlwifi wireless driver (iwlmvm). This driver requires physical Intel PCIe wireless network adapters and proprietary firmware, which are not emulated in standard virtualized environments like QEMU/GCE. Therefore, this code is unreachable during fuzzing.",
"WorthFuzzing": false
} |
| 15/1 | 2026/08/31 18:41 | action | If |
0mArgs:{
"WorthFuzzing": false
}Results: null |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|