| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/08/07 20:54 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The patch adds a simple device tree quirk to ignore a regulatory hint for a specific Marvell WiFi board. The logic change is trivial (a single boolean check during initialization) and does not introduce complex execution flows or new features that would benefit from fuzzing.",
"WorthFuzzing": false
} |
| 1/1 | 2026/08/07 20:54 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit aadc5ddbb8be9d7dc04ee46d382d46c6cf5cf55b\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Fri Aug 7 20:54:29 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts\nindex 4ab45f294de22..6e283e223ca4c 100644\n--- a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts\n+++ b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts\n@@ -14,6 +14,7 @@ / {\n \tmodel = \"Linksys WRT3200ACM\";\n \tcompatible = \"linksys,rango\", \"linksys,armada385\", \"marvell,armada385\",\n \t\t \"marvell,armada380\";\n+\tmarvell,ignore-regulatory-hint;\n };\n \n \u0026expander0 {\ndiff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c\nindex abc703441c5d8..0239b1c9214b7 100644\n--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c\n+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c\n@@ -4899,7 +4899,14 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)\n \t\t\t\tcountry_code =\n \t\t\t\t\tmwifiex_11d_code_2_region(\n \t\t\t\t\t\tadapter-\u003eregion_code);\n+\n+\t\t\t\t/* Allow platforms to ignore an incorrect\n+\t\t\t\t * regulatory hint from ROM, so userspace\n+\t\t\t\t * can set the correct regulatory domain.\n+\t\t\t\t */\n \t\t\t\tif (country_code \u0026\u0026\n+\t\t\t\t !of_property_read_bool(of_root,\n+\t\t\t\t\t\t\t \"marvell,ignore-regulatory-hint\") \u0026\u0026\n \t\t\t\t regulatory_hint(wiphy, country_code))\n \t\t\t\t\tmwifiex_dbg(priv-\u003eadapter, ERROR,\n \t\t\t\t\t\t \"regulatory_hint() failed\\n\");\n"
} |
| 2/1 | 2026/08/07 20:54 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch adds a simple device tree quirk to ignore a regulatory hint for a specific Marvell WiFi board. The logic change is trivial (a single boolean check during initialization) and does not introduce complex execution flows or new features that would benefit from 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 aadc5ddbb8be9d7dc04ee46d382d46c6cf5cf55b
Author: syz-cluster <triage@syzkaller.com>
Date: Fri Aug 7 20:54:29 2026 +0000
syz-cluster: applied patch under review
diff --git a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
index 4ab45f294de22..6e283e223ca4c 100644
--- a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
+++ b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
@@ -14,6 +14,7 @@ / {
model = "Linksys WRT3200ACM";
compatible = "linksys,rango", "linksys,armada385", "marvell,armada385",
"marvell,armada380";
+ marvell,ignore-regulatory-hint;
};
&expander0 {
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index abc703441c5d8..0239b1c9214b7 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -4899,7 +4899,14 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
country_code =
mwifiex_11d_code_2_region(
adapter->region_code);
+
+ /* Allow platforms to ignore an incorrect
+ * regulatory hint from ROM, so userspace
+ * can set the correct regulatory domain.
+ */
if (country_code &&
+ !of_property_read_bool(of_root,
+ "marvell,ignore-regulatory-hint") &&
regulatory_hint(wiphy, country_code))
mwifiex_dbg(priv->adapter, ERROR,
"regulatory_hint() failed\n");
|
| 3/2 | 2026/08/07 20:54 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 2361 output: 45 thoughts: 278 Thoughts: **Analyzing a Regulatory Override Patch** Okay, so I've got this patch – interesting. It's touching `cfg80211.c` within the Marvell wireless driver, along with the device tree for the Armada-385 Linksys Rango. The change in `cfg80211.c` is straightforward: it introduces a check before calling `regulatory_hint`. Specifically, it uses `of_property_read_bool` to see if the device tree has a "marvell,ignore-regulatory-hint" property set. If that property *isn't* present, then the regulatory hint is applied. This check is inside `mwifiex_register_cfg80211`, and my first thought is to see if this is even reachable. Alright, so `mwifiex_register_cfg80211` is part of the `mwifiex` driver. I need to figure out if this is something that's even worth looking at. Is `mwifiex` currently being fuzzed? Given its a Marvell WiFi driver, it's definitely a target of interest. Can I even emulate this driver? The next logical step is to quickly refresh my memory on the driver's capabilities. Let's see... it supports SDIO, PCIe, and USB. That's good. USB is promising because I can use things like `dummy_hcd` or `raw-gadget` for emulation. So, `mwifiex_usb` *should* be loadable and probeable, which means I can actually trigger the probe sequence. So, the critical question is, does `mwifiex_register_cfg80211` actually get called during the probe process? That's the key to triggering this conditional logic. I need to confirm that this function is reached during a typical `mwifiex` initialization, especially for USB configurations. |
| 4/2 | 2026/08/07 20:54 | tool | grepper |
0mArgs:{
"Expression": "mwifiex_register_cfg80211",
"PathPrefix": "drivers/net/wireless/marvell/mwifiex/"
}Results: {
"Output": "drivers/net/wireless/marvell/mwifiex/cfg80211.c=4670=int mwifiex_init_channel_scan_gap(struct mwifiex_adapter *adapter)\n--\ndrivers/net/wireless/marvell/mwifiex/cfg80211.c-4699-\ndrivers/net/wireless/marvell/mwifiex/cfg80211.c:4700:int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)\ndrivers/net/wireless/marvell/mwifiex/cfg80211.c-4701-{\n--\ndrivers/net/wireless/marvell/mwifiex/cfg80211.h-14-\ndrivers/net/wireless/marvell/mwifiex/cfg80211.h:15:int mwifiex_register_cfg80211(struct mwifiex_adapter *);\ndrivers/net/wireless/marvell/mwifiex/cfg80211.h-16-\n--\ndrivers/net/wireless/marvell/mwifiex/main.c=535=static int _mwifiex_fw_dpc(const struct firmware *firmware, void *context)\n--\ndrivers/net/wireless/marvell/mwifiex/main.c-586-\tif (!adapter-\u003ewiphy) {\ndrivers/net/wireless/marvell/mwifiex/main.c:587:\t\tif (mwifiex_register_cfg80211(adapter)) {\ndrivers/net/wireless/marvell/mwifiex/main.c-588-\t\t\tmwifiex_dbg(adapter, ERROR,\n"
} |
| 5/2 | 2026/08/07 20:54 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3517 output: 42 thoughts: 93 Thoughts: **Fuzzing the Firmware Download Completion Callback** Okay, so I'm looking at this function, `_mwifiex_fw_dpc`. The name gives it away: it's a callback triggered upon firmware download completion. Immediately, my mind goes to fuzzing. If it's related to firmware, there's a strong chance it's a potential vulnerability point. The usual approach for fuzzing firmware loading with `request_firmware` is pretty well-understood. We can feed it firmware through sysfs, or we can make the load fail and see what happens. Can we apply a similar strategy here? Let's dig into `_mwifiex_fw_dpc` itself and see what's happening internally. I need to understand what's triggered from here. Is the completion event the end of the line, or does it trigger something else? Are there any data structures being used here that are influenced by the firmware? Time to crack this one open. |
| 6/2 | 2026/08/07 20:54 | tool | grepper |
0mArgs:{
"Expression": "_mwifiex_fw_dpc",
"PathPrefix": "drivers/net/wireless/marvell/mwifiex/"
}Results: {
"Output": "drivers/net/wireless/marvell/mwifiex/main.c=510=static void mwifiex_terminate_workqueue(struct mwifiex_adapter *adapter)\n--\ndrivers/net/wireless/marvell/mwifiex/main.c-534- */\ndrivers/net/wireless/marvell/mwifiex/main.c:535:static int _mwifiex_fw_dpc(const struct firmware *firmware, void *context)\ndrivers/net/wireless/marvell/mwifiex/main.c-536-{\n--\ndrivers/net/wireless/marvell/mwifiex/main.c=689=static void mwifiex_fw_dpc(const struct firmware *firmware, void *context)\ndrivers/net/wireless/marvell/mwifiex/main.c-690-{\ndrivers/net/wireless/marvell/mwifiex/main.c:691:\t_mwifiex_fw_dpc(firmware, context);\ndrivers/net/wireless/marvell/mwifiex/main.c-692-}\n--\ndrivers/net/wireless/marvell/mwifiex/main.c=1530=mwifiex_reinit_sw(struct mwifiex_adapter *adapter)\n--\ndrivers/net/wireless/marvell/mwifiex/main.c-1592-\ndrivers/net/wireless/marvell/mwifiex/main.c:1593:\t/* _mwifiex_fw_dpc() does its own cleanup */\ndrivers/net/wireless/marvell/mwifiex/main.c:1594:\tret = _mwifiex_fw_dpc(adapter-\u003efirmware, adapter);\ndrivers/net/wireless/marvell/mwifiex/main.c-1595-\tif (ret) {\n"
} |
| 7/2 | 2026/08/07 20:54 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 4314 output: 82 thoughts: 471 Thoughts: **Fuzzing Assessment: `marvell,ignore-regulatory-hint` Change** Okay, let's break this down. Is this change even *worth* fuzzing? On the surface, it looks incredibly minor. It's just a single `of_property_read_bool` check. Specifically, it's checking for the existence of "marvell,ignore-regulatory-hint" in the device tree at the root level. If the property *isn't* present, then it proceeds with the usual `regulatory_hint` call. If the property *is* present, the regulatory hint is ignored. It really just adds a simple `if` condition. Functionally, this is very simple, almost trivial. From a fuzzing perspective, this means we'd be crafting a device tree with that particular property at the root and then, somehow, triggering the `mwifiex` driver to probe and load firmware. But even then, the core logic is still just a boolean check and conditional function call skipping. The patch itself only touches the device tree file for the `armada-385-linksys-rango` platform and the `mwifiex` driver. The code change itself is a straightforward `if` statement modification: ```c if (country_code && !of_property_read_bool(of_root, "marvell,ignore-regulatory-hint") && regulatory_hint(wiphy, country_code)) mwifiex_dbg(priv->adapter, ERROR, "regulatory_hint() failed\n"); ``` It's essentially saying "if there's a country code, and the `marvell,ignore-regulatory-hint` property *isn't* set, then call the regulatory hint function". Otherwise, skip it. This still seems like a very simple change. I was thinking this may be a fix for a bug but this is not the case, this is a feature/quirk. Given the simplicity and the nature of this change, I'm going to set `WorthFuzzing=false`. It's really just a conditional skip. It's just a quirk to allow a platform to ignore an incorrect regulatory hint. |
| 8/2 | 2026/08/07 20:54 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch adds a simple device tree quirk to ignore a regulatory hint for a specific Marvell WiFi board. The logic change is trivial (a single boolean check during initialization) and does not introduce complex execution flows or new features that would benefit from fuzzing.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch adds a simple device tree quirk to ignore a regulatory hint for a specific Marvell WiFi board. The logic change is trivial (a single boolean check during initialization) and does not introduce complex execution flows or new features that would benefit from fuzzing.",
"WorthFuzzing": false
} |
| 9/1 | 2026/08/07 20:54 | 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) |
|---|