| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/07/21 21:32 | flow | patch-triage |
1mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch fixes resource leaks in the probe error path of the ath11k AHB platform driver. This is a hardware-specific driver for Qualcomm SoCs and its probe path is not reachable in generic virtualized environments (like QEMU/GCE) without the actual hardware or a dedicated emulator.",
"WorthFuzzing": false
} |
| 1/1 | 2026/07/21 21:32 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 7c56c4fd7cbe969c1ffbc4f55f9712213828fdea\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Tue Jul 21 21:32:35 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c\nindex f566d699d074a8..bdf53aa7ddf1f5 100644\n--- a/drivers/net/wireless/ath/ath11k/ahb.c\n+++ b/drivers/net/wireless/ath/ath11k/ahb.c\n@@ -431,36 +431,44 @@ static void ath11k_ahb_init_qmi_ce_config(struct ath11k_base *ab)\n \tab-\u003eqmi.service_ins_id = ab-\u003ehw_params.qmi_service_ins_id;\n }\n \n-static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab)\n+static void ath11k_ahb_free_ext_irq_grp(struct ath11k_base *ab,\n+\t\t\t\t struct ath11k_ext_irq_grp *irq_grp)\n {\n-\tint i, j;\n-\n-\tfor (i = 0; i \u003c ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {\n-\t\tstruct ath11k_ext_irq_grp *irq_grp = \u0026ab-\u003eext_irq_grp[i];\n+\tint j;\n \n-\t\tfor (j = 0; j \u003c irq_grp-\u003enum_irq; j++)\n-\t\t\tfree_irq(ab-\u003eirq_num[irq_grp-\u003eirqs[j]], irq_grp);\n+\tfor (j = 0; j \u003c irq_grp-\u003enum_irq; j++)\n+\t\tfree_irq(ab-\u003eirq_num[irq_grp-\u003eirqs[j]], irq_grp);\n \n-\t\tnetif_napi_del(\u0026irq_grp-\u003enapi);\n-\t\tfree_netdev(irq_grp-\u003enapi_ndev);\n-\t}\n+\tnetif_napi_del(\u0026irq_grp-\u003enapi);\n+\tfree_netdev(irq_grp-\u003enapi_ndev);\n }\n \n-static void ath11k_ahb_free_irq(struct ath11k_base *ab)\n+static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab)\n {\n-\tint irq_idx;\n \tint i;\n \n-\tif (ab-\u003ehw_params.hybrid_bus_type)\n-\t\treturn ath11k_pcic_free_irq(ab);\n+\tfor (i = 0; i \u003c ATH11K_EXT_IRQ_GRP_NUM_MAX; i++)\n+\t\tath11k_ahb_free_ext_irq_grp(ab, \u0026ab-\u003eext_irq_grp[i]);\n+}\n \n-\tfor (i = 0; i \u003c ab-\u003ehw_params.ce_count; i++) {\n+static void ath11k_ahb_free_ce_irqs(struct ath11k_base *ab, int max_idx)\n+{\n+\tint irq_idx, i;\n+\n+\tfor (i = 0; i \u003c max_idx; i++) {\n \t\tif (ath11k_ce_get_attr_flags(ab, i) \u0026 CE_ATTR_DIS_INTR)\n \t\t\tcontinue;\n \t\tirq_idx = ATH11K_IRQ_CE0_OFFSET + i;\n \t\tfree_irq(ab-\u003eirq_num[irq_idx], \u0026ab-\u003ece.ce_pipe[i]);\n \t}\n+}\n+\n+static void ath11k_ahb_free_irq(struct ath11k_base *ab)\n+{\n+\tif (ab-\u003ehw_params.hybrid_bus_type)\n+\t\treturn ath11k_pcic_free_irq(ab);\n \n+\tath11k_ahb_free_ce_irqs(ab, ab-\u003ehw_params.ce_count);\n \tath11k_ahb_free_ext_irq(ab);\n }\n \n@@ -524,20 +532,25 @@ static irqreturn_t ath11k_ahb_ext_interrupt_handler(int irq, void *arg)\n static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)\n {\n \tstruct ath11k_hw_params *hw = \u0026ab-\u003ehw_params;\n+\tstruct ath11k_ext_irq_grp *irq_grp;\n \tint i, j;\n \tint irq;\n \tint ret;\n \n \tfor (i = 0; i \u003c ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {\n-\t\tstruct ath11k_ext_irq_grp *irq_grp = \u0026ab-\u003eext_irq_grp[i];\n \t\tu32 num_irq = 0;\n \n+\t\tirq_grp = \u0026ab-\u003eext_irq_grp[i];\n+\n \t\tirq_grp-\u003eab = ab;\n \t\tirq_grp-\u003egrp_id = i;\n \n \t\tirq_grp-\u003enapi_ndev = alloc_netdev_dummy(0);\n-\t\tif (!irq_grp-\u003enapi_ndev)\n-\t\t\treturn -ENOMEM;\n+\t\tif (!irq_grp-\u003enapi_ndev) {\n+\t\t\tret = -ENOMEM;\n+\t\t\tirq_grp-\u003enum_irq = 0;\n+\t\t\tgoto err_request_irq;\n+\t\t}\n \n \t\tnetif_napi_add(irq_grp-\u003enapi_ndev, \u0026irq_grp-\u003enapi,\n \t\t\t ath11k_ahb_ext_grp_napi_poll);\n@@ -585,9 +598,7 @@ static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)\n \t\t\t\t}\n \t\t\t}\n \t\t}\n-\t\tirq_grp-\u003enum_irq = num_irq;\n-\n-\t\tfor (j = 0; j \u003c irq_grp-\u003enum_irq; j++) {\n+\t\tfor (j = 0; j \u003c num_irq; j++) {\n \t\t\tint irq_idx = irq_grp-\u003eirqs[j];\n \n \t\t\tirq = platform_get_irq_byname(ab-\u003epdev,\n@@ -600,11 +611,23 @@ static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)\n \t\t\tif (ret) {\n \t\t\t\tath11k_err(ab, \"failed request_irq for %d\\n\",\n \t\t\t\t\t irq);\n+\t\t\t\tirq_grp-\u003enum_irq = j;\n+\t\t\t\tath11k_ahb_free_ext_irq_grp(ab, irq_grp);\n+\t\t\t\tgoto err_request_irq;\n \t\t\t}\n \t\t}\n+\n+\t\tirq_grp-\u003enum_irq = num_irq;\n \t}\n \n \treturn 0;\n+\n+err_request_irq:\n+\tfor (i--; i \u003e= 0; i--) {\n+\t\tirq_grp = \u0026ab-\u003eext_irq_grp[i];\n+\t\tath11k_ahb_free_ext_irq_grp(ab, irq_grp);\n+\t}\n+\treturn ret;\n }\n \n static int ath11k_ahb_config_irq(struct ath11k_base *ab)\n@@ -629,16 +652,24 @@ static int ath11k_ahb_config_irq(struct ath11k_base *ab)\n \t\tret = request_irq(irq, ath11k_ahb_ce_interrupt_handler,\n \t\t\t\t IRQF_TRIGGER_RISING, irq_name[irq_idx],\n \t\t\t\t ce_pipe);\n-\t\tif (ret)\n+\t\tif (ret) {\n+\t\t\tath11k_err(ab, \"failed request_irq for %d\\n\", irq);\n+\t\t\tath11k_ahb_free_ce_irqs(ab, i);\n \t\t\treturn ret;\n+\t\t}\n \n \t\tab-\u003eirq_num[irq_idx] = irq;\n \t}\n \n \t/* Configure external interrupts */\n \tret = ath11k_ahb_config_ext_irq(ab);\n+\tif (ret) {\n+\t\tath11k_err(ab, \"failed to configure ext irq: %d\\n\", ret);\n+\t\tath11k_ahb_free_ce_irqs(ab, ab-\u003ehw_params.ce_count);\n+\t\treturn ret;\n+\t}\n \n-\treturn ret;\n+\treturn 0;\n }\n \n static int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id,\n"
} |
| 2/1 | 2026/07/21 21:32 | agent | patch-evaluator |
1mModel:best-expensive Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch fixes resource leaks in the probe error path of the ath11k AHB platform driver. This is a hardware-specific driver for Qualcomm SoCs and its probe path is not reachable in generic virtualized environments (like QEMU/GCE) without the actual hardware or a dedicated emulator.",
"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). 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. 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. Do not list too generic configs (we already have them enabled). Only list those that specifically cover the modified code. 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 7c56c4fd7cbe969c1ffbc4f55f9712213828fdea
Author: syz-cluster <triage@syzkaller.com>
Date: Tue Jul 21 21:32:35 2026 +0000
syz-cluster: applied patch under review
diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
index f566d699d074a8..bdf53aa7ddf1f5 100644
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -431,36 +431,44 @@ static void ath11k_ahb_init_qmi_ce_config(struct ath11k_base *ab)
ab->qmi.service_ins_id = ab->hw_params.qmi_service_ins_id;
}
-static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab)
+static void ath11k_ahb_free_ext_irq_grp(struct ath11k_base *ab,
+ struct ath11k_ext_irq_grp *irq_grp)
{
- int i, j;
-
- for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
- struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
+ int j;
- for (j = 0; j < irq_grp->num_irq; j++)
- free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp);
+ for (j = 0; j < irq_grp->num_irq; j++)
+ free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp);
- netif_napi_del(&irq_grp->napi);
- free_netdev(irq_grp->napi_ndev);
- }
+ netif_napi_del(&irq_grp->napi);
+ free_netdev(irq_grp->napi_ndev);
}
-static void ath11k_ahb_free_irq(struct ath11k_base *ab)
+static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab)
{
- int irq_idx;
int i;
- if (ab->hw_params.hybrid_bus_type)
- return ath11k_pcic_free_irq(ab);
+ for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++)
+ ath11k_ahb_free_ext_irq_grp(ab, &ab->ext_irq_grp[i]);
+}
- for (i = 0; i < ab->hw_params.ce_count; i++) {
+static void ath11k_ahb_free_ce_irqs(struct ath11k_base *ab, int max_idx)
+{
+ int irq_idx, i;
+
+ for (i = 0; i < max_idx; i++) {
if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR)
continue;
irq_idx = ATH11K_IRQ_CE0_OFFSET + i;
free_irq(ab->irq_num[irq_idx], &ab->ce.ce_pipe[i]);
}
+}
+
+static void ath11k_ahb_free_irq(struct ath11k_base *ab)
+{
+ if (ab->hw_params.hybrid_bus_type)
+ return ath11k_pcic_free_irq(ab);
+ ath11k_ahb_free_ce_irqs(ab, ab->hw_params.ce_count);
ath11k_ahb_free_ext_irq(ab);
}
@@ -524,20 +532,25 @@ static irqreturn_t ath11k_ahb_ext_interrupt_handler(int irq, void *arg)
static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)
{
struct ath11k_hw_params *hw = &ab->hw_params;
+ struct ath11k_ext_irq_grp *irq_grp;
int i, j;
int irq;
int ret;
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
- struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
u32 num_irq = 0;
+ irq_grp = &ab->ext_irq_grp[i];
+
irq_grp->ab = ab;
irq_grp->grp_id = i;
irq_grp->napi_ndev = alloc_netdev_dummy(0);
- if (!irq_grp->napi_ndev)
- return -ENOMEM;
+ if (!irq_grp->napi_ndev) {
+ ret = -ENOMEM;
+ irq_grp->num_irq = 0;
+ goto err_request_irq;
+ }
netif_napi_add(irq_grp->napi_ndev, &irq_grp->napi,
ath11k_ahb_ext_grp_napi_poll);
@@ -585,9 +598,7 @@ static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)
}
}
}
- irq_grp->num_irq = num_irq;
-
- for (j = 0; j < irq_grp->num_irq; j++) {
+ for (j = 0; j < num_irq; j++) {
int irq_idx = irq_grp->irqs[j];
irq = platform_get_irq_byname(ab->pdev,
@@ -600,11 +611,23 @@ static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)
if (ret) {
ath11k_err(ab, "failed request_irq for %d\n",
irq);
+ irq_grp->num_irq = j;
+ ath11k_ahb_free_ext_irq_grp(ab, irq_grp);
+ goto err_request_irq;
}
}
+
+ irq_grp->num_irq = num_irq;
}
return 0;
+
+err_request_irq:
+ for (i--; i >= 0; i--) {
+ irq_grp = &ab->ext_irq_grp[i];
+ ath11k_ahb_free_ext_irq_grp(ab, irq_grp);
+ }
+ return ret;
}
static int ath11k_ahb_config_irq(struct ath11k_base *ab)
@@ -629,16 +652,24 @@ static int ath11k_ahb_config_irq(struct ath11k_base *ab)
ret = request_irq(irq, ath11k_ahb_ce_interrupt_handler,
IRQF_TRIGGER_RISING, irq_name[irq_idx],
ce_pipe);
- if (ret)
+ if (ret) {
+ ath11k_err(ab, "failed request_irq for %d\n", irq);
+ ath11k_ahb_free_ce_irqs(ab, i);
return ret;
+ }
ab->irq_num[irq_idx] = irq;
}
/* Configure external interrupts */
ret = ath11k_ahb_config_ext_irq(ab);
+ if (ret) {
+ ath11k_err(ab, "failed to configure ext irq: %d\n", ret);
+ ath11k_ahb_free_ce_irqs(ab, ab->hw_params.ce_count);
+ return ret;
+ }
- return ret;
+ return 0;
}
static int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id,
|
| 3/2 | 2026/07/21 21:32 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3973 output: 28 thoughts: 422 Thoughts: **Patch Evaluation and Reachability Analysis** Okay, so I've got this patch here, and my initial thought is, let's dissect it. It's in `drivers/net/wireless/ath/ath11k/ahb.c`, which immediately tells me it's dealing with Qualcomm Wi-Fi, specifically the AHB interface. The patch targets error handling in `ath11k_ahb_config_ext_irq` and `ath11k_ahb_config_irq`, which usually means initialization routines. Specifically, it seems like they're adding cleanup of IRQs and netdevs when `alloc_netdev_dummy` or `request_irq` fail, introducing these new functions `ath11k_ahb_free_ext_irq_grp` and `ath11k_ahb_free_ce_irqs` to handle partial allocations. My next immediate question is always, "Is this reachable, and is it worth fuzzing?" Initialization error paths can be goldmines for finding subtle bugs, but they're often tricky to trigger reliably. This is a wireless driver, `ath11k`, so the question is, how easily can we fuzz that? It's a PCI/AHB driver for Qualcomm Wi-Fi, which gives me pause. AHB is typically an SoC thing, like the IPQ8074, right? So can we even fuzz AHB drivers effectively in a virtualized environment? They're usually pretty platform-specific, and syzkaller, in my experience, isn't great at targeting AHB platform devices unless there's a good way to instantiate them or a specific mock setup. This is a memory/resource leak fix on probe failure. That smells like a hardware issue, and if it's just a probe failure cleanup in a hardware-specific driver like this, it’s probably not reachable in a generic VM without the hardware or a suitable emulator. I'm going to quickly check if `ath11k` is even enabled in standard configs or if it’s testable by checking if its initialisation functions are present in the kernel. I'll use `grepper` and search for `ath11k_ahb_config_ext_irq` to get a quick overview of the code, to confirm that it's present and to give myself a mental map of the driver. |
| 4/2 | 2026/07/21 21:32 | tool | grepper |
0mArgs:{
"Expression": "ath11k_ahb_config_ext_irq"
}Results: {
"Output": "drivers/net/wireless/ath/ath11k/ahb.c=518=static irqreturn_t ath11k_ahb_ext_interrupt_handler(int irq, void *arg)\n--\ndrivers/net/wireless/ath/ath11k/ahb.c-531-\ndrivers/net/wireless/ath/ath11k/ahb.c:532:static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)\ndrivers/net/wireless/ath/ath11k/ahb.c-533-{\n--\ndrivers/net/wireless/ath/ath11k/ahb.c=633=static int ath11k_ahb_config_irq(struct ath11k_base *ab)\n--\ndrivers/net/wireless/ath/ath11k/ahb.c-664-\t/* Configure external interrupts */\ndrivers/net/wireless/ath/ath11k/ahb.c:665:\tret = ath11k_ahb_config_ext_irq(ab);\ndrivers/net/wireless/ath/ath11k/ahb.c-666-\tif (ret) {\n"
} |
| 5/2 | 2026/07/21 21:32 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5250 output: 26 thoughts: 65 Thoughts: Okay, let's break this down. **Analyzing Driver Probe Error Handling** I need to understand what this patch is doing with the error handling in the driver's probe or initialization phase. Specifically, it seems like it's touching `ath11k_ahb_config_irq`, which is called from within functions like `ath11k_ahb_probe`. My immediate goal is to understand the context of this function. Let me trace where `ath11k_ahb_config_irq` is being called within the relevant codebase. Knowing the call sites will reveal the logic it's part of and help clarify the implications of any modifications. This is crucial for evaluating potential impacts on stability and robustness during the device's initial configuration. |
| 6/2 | 2026/07/21 21:33 | tool | grepper |
0mArgs:{
"Expression": "ath11k_ahb_config_irq"
}Results: {
"Output": "drivers/net/wireless/ath/ath11k/ahb.c=532=static int ath11k_ahb_config_ext_irq(struct ath11k_base *ab)\n--\ndrivers/net/wireless/ath/ath11k/ahb.c-632-\ndrivers/net/wireless/ath/ath11k/ahb.c:633:static int ath11k_ahb_config_irq(struct ath11k_base *ab)\ndrivers/net/wireless/ath/ath11k/ahb.c-634-{\n--\ndrivers/net/wireless/ath/ath11k/ahb.c=1138=static int ath11k_ahb_probe(struct platform_device *pdev)\n--\ndrivers/net/wireless/ath/ath11k/ahb.c-1230-\ndrivers/net/wireless/ath/ath11k/ahb.c:1231:\tret = ath11k_ahb_config_irq(ab);\ndrivers/net/wireless/ath/ath11k/ahb.c-1232-\tif (ret) {\n"
} |
| 7/2 | 2026/07/21 21:33 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5805 output: 93 thoughts: 483 Thoughts: **WorthFuzzing Assessment: Ath11k AHB Probe Error Handling** Okay, let's break this down. This code is reached through `ath11k_ahb_probe`, a platform driver probe function. To get here, we need a registered platform device that matches the driver. The question is, can we inject this platform device somehow in a generic VM, or is this inherently hardware-specific? Normally, platform devices come from Device Tree or ACPI, or are created by other kernel code. Unless there's a back door like `platform_device_register` exposed through some debug interface or Syzkaller pseudo-syscall... Wait a minute, Syzkaller *does* have some platform device injection, but it's limited. The biggest challenge here is that this is the AHB variant of the `ath11k` Wi-Fi driver, which is all about Qualcomm SoCs like IPQ8074. Even *if* we somehow inject the device, it's going to immediately try to talk to hardware registers. Think `ioremap`, `readl`, `writel` – that's a recipe for an immediate crash or an early, ignominious failure. And even if we get past that, the IRQ configuration is going to fail, since the actual hardware IRQs won't be present. Ah, but the patch itself... it's all about error handling when `request_irq` or `alloc_netdev_dummy` fails. So, if we *could* inject the device, `platform_get_irq_byname` *might* fail, and trigger the error path. But is it worth the effort? Looking at the patch itself, it's a straightforward error path cleanup fix: freeing IRQs and netdevs on probe failure. No complex logic is added, just standard cleanup. It's also extremely hardware-specific – the ath11k AHB. So, here's my verdict: I will mark it as `WorthFuzzing=false`. It's an unreachable hardware-specific driver probe error path in virtualized environments. It’s exceedingly unlikely to be triggered outside of a real Qualcomm SoC-based system or a very specialized emulator. Let's double check. Ah, yes, the patch is fixing a memory leak – a resource leak – on probe failure. It’s a very common pattern. But the overall assessment doesn’t change. The same reasoning applies: I will return `WorthFuzzing=false`, because it's a hardware-specific platform driver (ath11k AHB) probe error path, and it is unreachable in virtualized environments without the specific hardware or a suitable emulator. |
| 8/2 | 2026/07/21 21:34 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch fixes resource leaks in the probe error path of the ath11k AHB platform driver. This is a hardware-specific driver for Qualcomm SoCs and its probe path is not reachable in generic virtualized environments (like QEMU/GCE) without the actual hardware or a dedicated emulator.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch fixes resource leaks in the probe error path of the ath11k AHB platform driver. This is a hardware-specific driver for Qualcomm SoCs and its probe path is not reachable in generic virtualized environments (like QEMU/GCE) without the actual hardware or a dedicated emulator.",
"WorthFuzzing": false
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|