| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/07/16 20:56 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only modifies selftests (tools/testing/selftests/*), which are user-space testing tools and do not affect the kernel's functional logic.",
"WorthFuzzing": false
} |
| 1/1 | 2026/07/16 20:56 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 049246a8a71b8b7bb7b7e798d69070daa00dd39a\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Thu Jul 16 20:56:20 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h\nindex 60838b61a2da52..7f53751523d892 100644\n--- a/tools/testing/selftests/kselftest.h\n+++ b/tools/testing/selftests/kselftest.h\n@@ -64,6 +64,10 @@\n #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))\n #endif\n \n+#ifndef swap\n+#define swap(a, b) do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)\n+#endif\n+\n #if defined(__i386__) || defined(__x86_64__) /* arch */\n /*\n * gcc cpuid.h provides __cpuid_count() since v4.4.\ndiff --git a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c b/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c\nindex 15ee8b7bfc114b..514d41f0071417 100644\n--- a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c\n+++ b/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c\n@@ -131,14 +131,10 @@ static void set_expected_val(void *addr, u64 val, int vcpu_id)\n \n /*\n * Update PTEs swapping two test pages.\n- * TODO: use swap()/xchg() when these are provided.\n */\n static void swap_two_test_pages(gpa_t pte_gva1, gpa_t pte_gva2)\n {\n-\tu64 tmp = *(u64 *)pte_gva1;\n-\n-\t*(u64 *)pte_gva1 = *(u64 *)pte_gva2;\n-\t*(u64 *)pte_gva2 = tmp;\n+\tswap(*(u64 *)pte_gva1, *(u64 *)pte_gva2);\n }\n \n /*\ndiff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c\nindex 700fbaa18d44b8..3a85a29203f4fe 100644\n--- a/tools/testing/selftests/mm/uffd-stress.c\n+++ b/tools/testing/selftests/mm/uffd-stress.c\n@@ -56,8 +56,6 @@ static uffd_global_test_opts_t *gopts;\n static char *zeropage;\n pthread_attr_t attr;\n \n-#define swap(a, b) \\\n-\tdo { __auto_type __tmp = (a); (a) = (b); (b) = __tmp; } while (0)\n \n const char *examples =\n \t\"# Run anonymous memory test on 100MiB region with 99999 bounces:\\n\"\n"
} |
| 2/1 | 2026/07/16 20:56 | agent | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only modifies selftests (tools/testing/selftests/*), which are user-space testing tools and do not affect the kernel's functional logic.",
"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 049246a8a71b8b7bb7b7e798d69070daa00dd39a
Author: syz-cluster <triage@syzkaller.com>
Date: Thu Jul 16 20:56:20 2026 +0000
syz-cluster: applied patch under review
diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
index 60838b61a2da52..7f53751523d892 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -64,6 +64,10 @@
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#endif
+#ifndef swap
+#define swap(a, b) do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
+#endif
+
#if defined(__i386__) || defined(__x86_64__) /* arch */
/*
* gcc cpuid.h provides __cpuid_count() since v4.4.
diff --git a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c b/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c
index 15ee8b7bfc114b..514d41f0071417 100644
--- a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c
+++ b/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c
@@ -131,14 +131,10 @@ static void set_expected_val(void *addr, u64 val, int vcpu_id)
/*
* Update PTEs swapping two test pages.
- * TODO: use swap()/xchg() when these are provided.
*/
static void swap_two_test_pages(gpa_t pte_gva1, gpa_t pte_gva2)
{
- u64 tmp = *(u64 *)pte_gva1;
-
- *(u64 *)pte_gva1 = *(u64 *)pte_gva2;
- *(u64 *)pte_gva2 = tmp;
+ swap(*(u64 *)pte_gva1, *(u64 *)pte_gva2);
}
/*
diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c
index 700fbaa18d44b8..3a85a29203f4fe 100644
--- a/tools/testing/selftests/mm/uffd-stress.c
+++ b/tools/testing/selftests/mm/uffd-stress.c
@@ -56,8 +56,6 @@ static uffd_global_test_opts_t *gopts;
static char *zeropage;
pthread_attr_t attr;
-#define swap(a, b) \
- do { __auto_type __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
const char *examples =
"# Run anonymous memory test on 100MiB region with 99999 bounces:\n"
|
| 3/2 | 2026/07/16 20:56 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 2459 output: 66 thoughts: 161 Thoughts: **WorthFuzzing=false: A Quick Review of This Patch** Okay, so I've taken a look at this patch and, after a quick scan, I've got a pretty good handle on what's going on. It seems to be touching a few files within the self-test framework: specifically, `tools/testing/selftests/kselftest.h`, `tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c`, and `tools/testing/selftests/mm/uffd-stress.c`. What I'm seeing is a standardizing of a `swap` macro across these tests – that's a good thing, avoids duplication, and promotes consistency. The patch is centralizing the definition within `kselftest.h` and then leveraging it in the other two files. It removes a locally defined version in `uffd-stress.c` and replaces a hand-rolled swap function in `hyperv_tlb_flush.c`. Standard stuff for code maintainability, which is great. However, and this is the critical point, these are all modifications *within* the self-test infrastructure. The changes are not altering the kernel's core functionality, which is the main goal of fuzzing. There aren't any functional changes to the kernel itself that require fuzzing. So, my conclusion is that this patch doesn't introduce any new attack surfaces or behavioral changes that need thorough fuzz testing. Therefore, I will return `WorthFuzzing=false` for this. This is purely a refactoring of the selftests. |
| 4/2 | 2026/07/16 20:56 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch only modifies selftests (tools/testing/selftests/*), which are user-space testing tools and do not affect the kernel's functional logic.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only modifies selftests (tools/testing/selftests/*), which are user-space testing tools and do not affect the kernel's functional logic.",
"WorthFuzzing": false
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|