| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/08/06 14:35 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_s390_reinject_machine_check",
"s390_do_machine_check"
],
"Reasoning": "The patch modifies how machine checks are handled and reinjected into KVM guests on s390. It changes `kvm_s390_reinject_machine_check` to always inject the machine check to the specific vcpu rather than as a floating machine check, and updates the `MCCK_CODE_NO_GUEST` mask. These are functional changes in reachable KVM and architecture-specific code.",
"WorthFuzzing": true
} |
| 1/1 | 2026/08/06 14:35 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 944799291d70bff798bacee3b30bd5f83f0f5b11\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Thu Aug 6 14:35:34 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/arch/s390/include/asm/nmi.h b/arch/s390/include/asm/nmi.h\nindex 6454c15318544..dd26c20bd2310 100644\n--- a/arch/s390/include/asm/nmi.h\n+++ b/arch/s390/include/asm/nmi.h\n@@ -22,6 +22,7 @@\n #define MCCK_CODE_SYSTEM_DAMAGE\t\tBIT(63)\n #define MCCK_CODE_EXT_DAMAGE\t\tBIT(63 - 5)\n #define MCCK_CODE_CP\t\t\tBIT(63 - 9)\n+#define MCCK_CODE_CK\t\t\tBIT(63 - 11)\n #define MCCK_CODE_STG_ERROR\t\tBIT(63 - 16)\n #define MCCK_CODE_STG_KEY_ERROR\t\tBIT(63 - 18)\n #define MCCK_CODE_STG_DEGRAD\t\tBIT(63 - 19)\ndiff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c\nindex e17a59d4d5a41..652b987952436 100644\n--- a/arch/s390/kernel/nmi.c\n+++ b/arch/s390/kernel/nmi.c\n@@ -345,7 +345,7 @@ static void notrace s390_backup_mcck_info(struct pt_regs *regs)\n \tsie_page = container_of(sie_block, struct sie_page, sie_block);\n \tmcck_backup = \u0026sie_page-\u003emcck_info;\n \tmcck_backup-\u003emcic = get_lowcore()-\u003emcck_interruption_code \u0026\n-\t\t\t\t~(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE);\n+\t\t\t~(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE | MCCK_CODE_CK);\n \tmcck_backup-\u003eext_damage_code = get_lowcore()-\u003eexternal_damage_code;\n \tmcck_backup-\u003efailing_storage_address = get_lowcore()-\u003efailing_storage_address;\n }\n@@ -357,7 +357,7 @@ NOKPROBE_SYMBOL(s390_backup_mcck_info);\n #define ED_STP_ISLAND\t6\t/* External damage STP island check */\n #define ED_STP_SYNC\t7\t/* External damage STP sync check */\n \n-#define MCCK_CODE_NO_GUEST\t(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE)\n+#define MCCK_CODE_NO_GUEST\t(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE | MCCK_CODE_CK)\n \n /*\n * machine check handler.\ndiff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c\nindex 7514d9e2403c1..3375a956637be 100644\n--- a/arch/s390/kvm/interrupt.c\n+++ b/arch/s390/kvm/interrupt.c\n@@ -3099,9 +3099,7 @@ static int set_adapter_int(struct kvm_kernel_irq_routing_entry *e,\n void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,\n \t\t\t\t struct mcck_volatile_info *mcck_info)\n {\n-\tstruct kvm_s390_interrupt_info inti;\n-\tstruct kvm_s390_irq irq;\n-\tstruct kvm_s390_mchk_info *mchk;\n+\tstruct kvm_s390_irq irq = {};\n \tunion mci mci;\n \t__u64 cr14 = 0; /* upper bits are not used */\n \tint rc;\n@@ -3120,20 +3118,14 @@ void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,\n \tif (mci.w)\n \t\tcr14 |= CR14_WARNING_SUBMASK;\n \n-\tmchk = mci.ck ? \u0026inti.mchk : \u0026irq.u.mchk;\n-\tmchk-\u003ecr14 = cr14;\n-\tmchk-\u003emcic = mcck_info-\u003emcic;\n-\tmchk-\u003eext_damage_code = mcck_info-\u003eext_damage_code;\n-\tmchk-\u003efailing_storage_address = mcck_info-\u003efailing_storage_address;\n-\tif (mci.ck) {\n-\t\t/* Inject the floating machine check */\n-\t\tinti.type = KVM_S390_MCHK;\n-\t\trc = __inject_vm(vcpu-\u003ekvm, \u0026inti);\n-\t} else {\n-\t\t/* Inject the machine check to specified vcpu */\n-\t\tirq.type = KVM_S390_MCHK;\n-\t\trc = kvm_s390_inject_vcpu(vcpu, \u0026irq);\n-\t}\n+\tirq.u.mchk.cr14 = cr14;\n+\tirq.u.mchk.mcic = mcck_info-\u003emcic;\n+\tirq.u.mchk.ext_damage_code = mcck_info-\u003eext_damage_code;\n+\tirq.u.mchk.failing_storage_address = mcck_info-\u003efailing_storage_address;\n+\n+\t/* Inject the machine check to specified vcpu */\n+\tirq.type = KVM_S390_MCHK;\n+\trc = kvm_s390_inject_vcpu(vcpu, \u0026irq);\n \tWARN_ON_ONCE(rc);\n }\n \n"
} |
| 2/1 | 2026/08/06 14:35 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_s390_reinject_machine_check",
"s390_do_machine_check"
],
"Reasoning": "The patch modifies how machine checks are handled and reinjected into KVM guests on s390. It changes `kvm_s390_reinject_machine_check` to always inject the machine check to the specific vcpu rather than as a floating machine check, and updates the `MCCK_CODE_NO_GUEST` mask. These are functional changes in reachable KVM and architecture-specific code.",
"WorthFuzzing": true
}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 944799291d70bff798bacee3b30bd5f83f0f5b11
Author: syz-cluster <triage@syzkaller.com>
Date: Thu Aug 6 14:35:34 2026 +0000
syz-cluster: applied patch under review
diff --git a/arch/s390/include/asm/nmi.h b/arch/s390/include/asm/nmi.h
index 6454c15318544..dd26c20bd2310 100644
--- a/arch/s390/include/asm/nmi.h
+++ b/arch/s390/include/asm/nmi.h
@@ -22,6 +22,7 @@
#define MCCK_CODE_SYSTEM_DAMAGE BIT(63)
#define MCCK_CODE_EXT_DAMAGE BIT(63 - 5)
#define MCCK_CODE_CP BIT(63 - 9)
+#define MCCK_CODE_CK BIT(63 - 11)
#define MCCK_CODE_STG_ERROR BIT(63 - 16)
#define MCCK_CODE_STG_KEY_ERROR BIT(63 - 18)
#define MCCK_CODE_STG_DEGRAD BIT(63 - 19)
diff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c
index e17a59d4d5a41..652b987952436 100644
--- a/arch/s390/kernel/nmi.c
+++ b/arch/s390/kernel/nmi.c
@@ -345,7 +345,7 @@ static void notrace s390_backup_mcck_info(struct pt_regs *regs)
sie_page = container_of(sie_block, struct sie_page, sie_block);
mcck_backup = &sie_page->mcck_info;
mcck_backup->mcic = get_lowcore()->mcck_interruption_code &
- ~(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE);
+ ~(MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE | MCCK_CODE_CK);
mcck_backup->ext_damage_code = get_lowcore()->external_damage_code;
mcck_backup->failing_storage_address = get_lowcore()->failing_storage_address;
}
@@ -357,7 +357,7 @@ NOKPROBE_SYMBOL(s390_backup_mcck_info);
#define ED_STP_ISLAND 6 /* External damage STP island check */
#define ED_STP_SYNC 7 /* External damage STP sync check */
-#define MCCK_CODE_NO_GUEST (MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE)
+#define MCCK_CODE_NO_GUEST (MCCK_CODE_CP | MCCK_CODE_EXT_DAMAGE | MCCK_CODE_CK)
/*
* machine check handler.
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 7514d9e2403c1..3375a956637be 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -3099,9 +3099,7 @@ static int set_adapter_int(struct kvm_kernel_irq_routing_entry *e,
void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,
struct mcck_volatile_info *mcck_info)
{
- struct kvm_s390_interrupt_info inti;
- struct kvm_s390_irq irq;
- struct kvm_s390_mchk_info *mchk;
+ struct kvm_s390_irq irq = {};
union mci mci;
__u64 cr14 = 0; /* upper bits are not used */
int rc;
@@ -3120,20 +3118,14 @@ void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,
if (mci.w)
cr14 |= CR14_WARNING_SUBMASK;
- mchk = mci.ck ? &inti.mchk : &irq.u.mchk;
- mchk->cr14 = cr14;
- mchk->mcic = mcck_info->mcic;
- mchk->ext_damage_code = mcck_info->ext_damage_code;
- mchk->failing_storage_address = mcck_info->failing_storage_address;
- if (mci.ck) {
- /* Inject the floating machine check */
- inti.type = KVM_S390_MCHK;
- rc = __inject_vm(vcpu->kvm, &inti);
- } else {
- /* Inject the machine check to specified vcpu */
- irq.type = KVM_S390_MCHK;
- rc = kvm_s390_inject_vcpu(vcpu, &irq);
- }
+ irq.u.mchk.cr14 = cr14;
+ irq.u.mchk.mcic = mcck_info->mcic;
+ irq.u.mchk.ext_damage_code = mcck_info->ext_damage_code;
+ irq.u.mchk.failing_storage_address = mcck_info->failing_storage_address;
+
+ /* Inject the machine check to specified vcpu */
+ irq.type = KVM_S390_MCHK;
+ rc = kvm_s390_inject_vcpu(vcpu, &irq);
WARN_ON_ONCE(rc);
}
|
| 3/2 | 2026/08/06 14:35 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3357 output: 28 thoughts: 248 Thoughts: **Analyzing a s390 Architecture Patch for Fuzzing Potential** Okay, so I'm looking at this patch targeting the s390 architecture, specifically touching `nmi.h`, `nmi.c`, and `interrupt.c` files. It looks like it's adding `MCCK_CODE_CK` to `MCCK_CODE_NO_GUEST` and introducing `s390_backup_mcck_info`. The core change simplifies `kvm_s390_reinject_machine_check` by ensuring machine checks are always injected to a specific vcpu. My initial thought is to assess its fuzzability. Given my knowledge, I need to pinpoint the relevant code; `kvm_s390_reinject_machine_check` is the key. The code resides in `arch/s390/kvm/interrupt.c` and `arch/s390/kernel/nmi.c`, which makes sense as these are KVM and architecture-specific files. The architecture is s390, and Syzkaller, a prominent fuzzer, supports s390x. I need to make sure this is compatible. Since it's KVM-related, I need to trace the call paths to `kvm_s390_reinject_machine_check` to understand the contexts it's used in and identify potential entry points for fuzzing. Figuring out how it's called will give me a better understanding of how the patch changes the KVM behavior. |
| 4/2 | 2026/08/06 14:35 | tool | grepper |
0mArgs:{
"Expression": "kvm_s390_reinject_machine_check"
}Results: {
"Output": "arch/s390/kvm/interrupt.c=3072=static int set_adapter_int(struct kvm_kernel_irq_routing_entry *e,\n--\narch/s390/kvm/interrupt.c-3098- */\narch/s390/kvm/interrupt.c:3099:void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,\narch/s390/kvm/interrupt.c-3100-\t\t\t\t struct mcck_volatile_info *mcck_info)\n--\narch/s390/kvm/kvm-s390.c=4725=static int vcpu_post_run(struct kvm_vcpu *vcpu, int sie_return)\n--\narch/s390/kvm/kvm-s390.c-4744-\t\tmcck_info = \u0026sie_page-\u003emcck_info;\narch/s390/kvm/kvm-s390.c:4745:\t\tkvm_s390_reinject_machine_check(vcpu, mcck_info);\narch/s390/kvm/kvm-s390.c-4746-\t\treturn 0;\n--\narch/s390/kvm/kvm-s390.h=578=static inline int kvm_s390_use_sca_entries(void)\n--\narch/s390/kvm/kvm-s390.h-586-}\narch/s390/kvm/kvm-s390.h:587:void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,\narch/s390/kvm/kvm-s390.h-588-\t\t\t\t struct mcck_volatile_info *mcck_info);\n--\narch/s390/kvm/vsie.c=1187=static int do_vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page, struct gmap *sg)\n--\narch/s390/kvm/vsie.c-1250-\tif (sie_return == SIE64_RETURN_MCCK) {\narch/s390/kvm/vsie.c:1251:\t\tkvm_s390_reinject_machine_check(vcpu, \u0026vsie_page-\u003emcck_info);\narch/s390/kvm/vsie.c-1252-\t\treturn 0;\n"
} |
| 5/2 | 2026/08/06 14:35 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 4650 output: 26 thoughts: 160 Thoughts: **Analyzing a KVM s390 Machine Check Patch** Okay, so this patch is modifying `kvm_s390_reinject_machine_check`. I know that function is called from `vcpu_post_run` and `do_vsie_run`, which are both central to KVM guest execution on the s390 architecture. This strongly suggests that we're dealing with a core component of how the hypervisor handles errors that happen *within* the virtual machine. My initial thought is, is this something that could be fuzzed? Given that KVM on s390 is already fuzzable - Syzkaller, if I recall correctly, has some s390x KVM support - the potential for finding vulnerabilities through fuzzing is definitely there. However, a quick second look reveals this patch isn't just about reinjection. It's also touching `s390_backup_mcck_info` which, given its name, likely means backing up Machine Check Code information for recovery or analysis purposes, and I'm interested in knowing more about it. Now I need to figure out where `s390_backup_mcck_info` is called. It may be helpful to understand the full context of the changes. This could be a critical area, potentially related to handling corrupt states, or maybe even to exploiting race conditions around error handling. Let's dig deeper and get a full picture. |
| 6/2 | 2026/08/06 14:35 | tool | grepper |
0mArgs:{
"Expression": "s390_backup_mcck_info"
}Results: {
"Output": "arch/s390/kernel/nmi.c=328=NOKPROBE_SYMBOL(nmi_registers_valid);\n--\narch/s390/kernel/nmi.c-332- */\narch/s390/kernel/nmi.c:333:static void notrace s390_backup_mcck_info(struct pt_regs *regs)\narch/s390/kernel/nmi.c-334-{\n--\narch/s390/kernel/nmi.c-351-}\narch/s390/kernel/nmi.c:352:NOKPROBE_SYMBOL(s390_backup_mcck_info);\narch/s390/kernel/nmi.c-353-\n--\narch/s390/kernel/nmi.c=365=void notrace s390_do_machine_check(struct pt_regs *regs)\n--\narch/s390/kernel/nmi.c-444-\tif (test_cpu_flag(CIF_MCCK_GUEST))\narch/s390/kernel/nmi.c:445:\t\ts390_backup_mcck_info(regs);\narch/s390/kernel/nmi.c-446-\n"
} |
| 7/2 | 2026/08/06 14:35 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5487 output: 24 thoughts: 411 Thoughts: **Analyzing the s390x Machine Check Handling in KVM** Okay, so I'm looking at this `s390_do_machine_check` function, which calls `s390_backup_mcck_info`. This is the architecture-specific machine check handler for s390x, and the core of my question is: can syzkaller actually trigger these machine checks? Normally, machine checks are hardware errors, right? But with KVM, things get a bit fuzzier. Perhaps we could inject them, or perhaps some guest action could cause one? Actually, if it *is* a hardware error, can syzkaller even touch it? Then I remember: syzkaller *can* use `/dev/kvm` to either inject machine checks directly into the guest or maybe the guest itself triggers it somehow. The patch I'm examining modifies `kvm_s390_reinject_machine_check`. This function is triggered when `sie_return == SIE64_RETURN_MCCK`. That’s the key! It happens when the hardware, or more realistically, the hypervisor, returns from the SIE instruction with a machine check indication. That makes me think: Can the guest *actually* trigger a machine check? Sometimes yes, but usually it is injected by the host. If syzkaller is fuzzing KVM from the host, it can use KVM ioctls to inject these checks, or maybe configure the guest in a way that indirectly causes a machine check. Hang on… Let me make sure I'm following. `kvm_s390_reinject_machine_check` is called when `vcpu_post_run` detects `sie_return == SIE64_RETURN_MCCK`. That means the host kernel is running the `KVM_RUN` ioctl, and the SIE instruction within KVM returns with a machine check indication. This is the mechanism! So the critical question is: Can we actually manipulate this flow with syzkaller? If syzkaller is running on s390x, it can call `KVM_RUN`. If the guest does something to actually *trigger* a machine check, or if we can inject one, maybe we've got a shot. Wait a second, `kvm_s390_reinject_machine_check` is *definitely* a KVM function. Let's check `KVM_S390_MCHK` injection. Let's look at that path! |
| 8/2 | 2026/08/06 14:35 | tool | grepper |
0mArgs:{
"Expression": "KVM_S390_MCHK"
}Results: {
"Output": "Documentation/virt/kvm/api.rst=3297=KVM_S390_INT_IO(ai,cssid,ssid,schid) (vm)\n--\nDocumentation/virt/kvm/api.rst-3301- interruption subclass)\nDocumentation/virt/kvm/api.rst:3302:KVM_S390_MCHK (vm, vcpu)\nDocumentation/virt/kvm/api.rst-3303- - machine check interrupt; cr 14 bits in parm, machine check interrupt\n--\nDocumentation/virt/kvm/api.rst=4109=type can be one of the following:\n--\nDocumentation/virt/kvm/api.rst-4118-- KVM_S390_INT_EXTERNAL_CALL - sigp external call; parameters in .extcall\nDocumentation/virt/kvm/api.rst:4119:- KVM_S390_MCHK - machine check interrupt; parameters in .mchk\nDocumentation/virt/kvm/api.rst-4120-\n--\narch/s390/include/uapi/asm/kvm.h=96=struct kvm_s390_psw {\n--\narch/s390/include/uapi/asm/kvm.h-107-#define KVM_S390_INT_PFAULT_DONE\t0xfffe0005u\narch/s390/include/uapi/asm/kvm.h:108:#define KVM_S390_MCHK\t\t\t0xfffe1000u\narch/s390/include/uapi/asm/kvm.h-109-#define KVM_S390_INT_CLOCK_COMP\t\t0xffff1004u\n--\narch/s390/kvm/interrupt.c=620=static int __must_check __deliver_machine_check(struct kvm_vcpu *vcpu)\n--\narch/s390/kvm/interrupt.c-663-\t\ttrace_kvm_s390_deliver_interrupt(vcpu-\u003evcpu_id,\narch/s390/kvm/interrupt.c:664:\t\t\t\t\t\t KVM_S390_MCHK,\narch/s390/kvm/interrupt.c-665-\t\t\t\t\t\t mchk.cr14, mchk.mcic);\n--\narch/s390/kvm/interrupt.c=1603=static int __inject_mchk(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq)\n--\narch/s390/kvm/interrupt.c-1610-\t\t irq-\u003eu.mchk.mcic);\narch/s390/kvm/interrupt.c:1611:\ttrace_kvm_s390_inject_vcpu(vcpu-\u003evcpu_id, KVM_S390_MCHK, 0,\narch/s390/kvm/interrupt.c-1612-\t\t\t\t irq-\u003eu.mchk.mcic);\n--\narch/s390/kvm/interrupt.c=1912=static void __floating_irq_kick(struct kvm *kvm, u64 type)\n--\narch/s390/kvm/interrupt.c-1932-\tswitch (type) {\narch/s390/kvm/interrupt.c:1933:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-1934-\t\tkvm_s390_set_cpuflags(dst_vcpu, CPUSTAT_STOP_INT);\n--\narch/s390/kvm/interrupt.c=1949=static int __inject_vm(struct kvm *kvm, struct kvm_s390_interrupt_info *inti)\n--\narch/s390/kvm/interrupt.c-1954-\tswitch (type) {\narch/s390/kvm/interrupt.c:1955:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-1956-\t\trc = __inject_float_mchk(kvm, inti);\n--\narch/s390/kvm/interrupt.c=1980=int kvm_s390_inject_vm(struct kvm *kvm,\n--\narch/s390/kvm/interrupt.c-1999-\t\tbreak;\narch/s390/kvm/interrupt.c:2000:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-2001-\t\tVM_EVENT(kvm, 3, \"inject: machine check mcic 0x%llx\",\n--\narch/s390/kvm/interrupt.c=2029=int s390int_to_s390irq(struct kvm_s390_interrupt *s390int,\n--\narch/s390/kvm/interrupt.c-2054-\t\tbreak;\narch/s390/kvm/interrupt.c:2055:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-2056-\t\tirq-\u003eu.mchk.mcic = s390int-\u003eparm64;\n--\narch/s390/kvm/interrupt.c=2096=static int do_inject_vcpu(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq)\n--\narch/s390/kvm/interrupt.c-2124-\t\tbreak;\narch/s390/kvm/interrupt.c:2125:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-2126-\t\trc = __inject_mchk(vcpu, irq);\n--\narch/s390/kvm/interrupt.c=2202=static int get_all_floating_irqs(struct kvm *kvm, u8 __user *usrbuf, u64 len)\n--\narch/s390/kvm/interrupt.c-2275-\t\tirq = (struct kvm_s390_irq *) \u0026buf[n];\narch/s390/kvm/interrupt.c:2276:\t\tirq-\u003etype = KVM_S390_MCHK;\narch/s390/kvm/interrupt.c-2277-\t\tirq-\u003eu.mchk = fi-\u003emchk;\n--\narch/s390/kvm/interrupt.c=2335=static inline int copy_irq_from_user(struct kvm_s390_interrupt_info *inti,\n--\narch/s390/kvm/interrupt.c-2359-\t\tbreak;\narch/s390/kvm/interrupt.c:2360:\tcase KVM_S390_MCHK:\narch/s390/kvm/interrupt.c-2361-\t\ttarget = (void *) \u0026inti-\u003emchk;\n--\narch/s390/kvm/interrupt.c=3099=void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu,\n--\narch/s390/kvm/interrupt.c-3126-\t/* Inject the machine check to specified vcpu */\narch/s390/kvm/interrupt.c:3127:\tirq.type = KVM_S390_MCHK;\narch/s390/kvm/interrupt.c-3128-\trc = kvm_s390_inject_vcpu(vcpu, \u0026irq);\n--\narch/s390/kvm/interrupt.c=3220=static void store_local_irq(struct kvm_s390_local_interrupt *li,\n--\narch/s390/kvm/interrupt.c-3226-\tcase IRQ_PEND_MCHK_REP:\narch/s390/kvm/interrupt.c:3227:\t\tirq-\u003etype = KVM_S390_MCHK;\narch/s390/kvm/interrupt.c-3228-\t\tirq-\u003eu.mchk = li-\u003eirq.mchk;\n--\narch/s390/kvm/trace-s390.h=81=TRACE_EVENT(kvm_s390_vcpu_start_stop,\n--\narch/s390/kvm/trace-s390.h-110-\t{KVM_S390_INT_PFAULT_DONE, \"pfault done\"},\t\t\t\\\narch/s390/kvm/trace-s390.h:111:\t{KVM_S390_MCHK, \"machine check\"},\t\t\t\t\\\narch/s390/kvm/trace-s390.h-112-\t{KVM_S390_INT_CLOCK_COMP, \"clock comparator\"},\t\t\t\\\n--\ntools/arch/s390/include/uapi/asm/kvm.h=96=struct kvm_s390_psw {\n--\ntools/arch/s390/include/uapi/asm/kvm.h-107-#define KVM_S390_INT_PFAULT_DONE\t0xfffe0005u\ntools/arch/s390/include/uapi/asm/kvm.h:108:#define KVM_S390_MCHK\t\t\t0xfffe1000u\ntools/arch/s390/include/uapi/asm/kvm.h-109-#define KVM_S390_INT_CLOCK_COMP\t\t0xffff1004u\n"
} |
| 9/2 | 2026/08/06 14:35 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 8984 output: 24 thoughts: 285 Thoughts: **Analyzing the KVM s390x Machine Check Patch** Okay, so I'm looking at this patch and it's making a specific change in `kvm_s390_reinject_machine_check`. Essentially, it's ensuring the machine check gets injected directly to the intended vCPU, rather than potentially floating to the entire VM. Makes sense, that's definitely more precise. It looks like it also adds `MCCK_CODE_CK` to `MCCK_CODE_NO_GUEST` and `s390_backup_mcck_info`. Let me check... `MCCK_CODE_CK` is defined using a bit shift, that's straightforward enough. Functionally, I think this is sound. But the question is: can we fuzz it? I know syzkaller can trigger KVM machine checks, or at least run KVM guests on s390x. My initial thought is to target `kvm_s390_reinject_machine_check` and `s390_backup_mcck_info`. Wait a second… `s390_backup_mcck_info` is *static* and marked as `notrace`! And it's called from `s390_do_machine_check`. That changes things a bit. Okay, back to the global function: `kvm_s390_reinject_machine_check` which is called from `vcpu_post_run` and `do_vsie_run`. Okay, I need to take a closer look at `s390_do_machine_check`. Let's see what's going on there. |
| 10/2 | 2026/08/06 14:36 | tool | grepper |
0mArgs:{
"Expression": "s390_do_machine_check"
}Results: {
"Output": "arch/s390/include/asm/nmi.h=105=void s390_handle_mcck(void);\narch/s390/include/asm/nmi.h:106:void s390_do_machine_check(struct pt_regs *regs);\narch/s390/include/asm/nmi.h-107-\n--\narch/s390/kernel/entry.S=450=SYM_CODE_START(mcck_int_handler)\n--\narch/s390/kernel/entry.S-515-\tlgr\t%r2,%r11\t\t# pass pointer to pt_regs\narch/s390/kernel/entry.S:516:\tbrasl\t%r14,s390_do_machine_check\narch/s390/kernel/entry.S-517-\tlmg\t%r0,%r10,__PT_R0(%r11)\n--\narch/s390/kernel/nmi.c=352=NOKPROBE_SYMBOL(s390_backup_mcck_info);\n--\narch/s390/kernel/nmi.c-364- */\narch/s390/kernel/nmi.c:365:void notrace s390_do_machine_check(struct pt_regs *regs)\narch/s390/kernel/nmi.c-366-{\n--\narch/s390/kernel/nmi.c-504-}\narch/s390/kernel/nmi.c:505:NOKPROBE_SYMBOL(s390_do_machine_check);\narch/s390/kernel/nmi.c-506-\n"
} |
| 11/2 | 2026/08/06 14:36 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 10120 output: 17 thoughts: 133 Thoughts: **Machine Check Handler Investigation** Okay, so I'm diving into this `s390_do_machine_check` routine. It looks like the core machine check handler, called from `mcck_int_handler` in `entry.S`. The key question is whether I can effectively fuzz `kvm_s390_reinject_machine_check`. It seems that's the path taken when a KVM guest exits with a machine check. That's good, that's exactly where I need to be focused. Now, I'm thinking about pre-requisites. I know that `CONFIG_KVM` is definitely a requirement for `kvm_s390_reinject_machine_check` to even be considered. I should make sure that's set. I also should double-check the Kconfig files, specifically in `arch/s390/kvm/Kconfig` to see if there are any other relevant configurations or dependencies I should know about. |
| 12/2 | 2026/08/06 14:36 | tool | grepper |
0mArgs:{
"Expression": "config KVM"
}Results: {
"Output": "arch/arm64/kvm/Kconfig=18=if VIRTUALIZATION\narch/arm64/kvm/Kconfig-19-\narch/arm64/kvm/Kconfig:20:menuconfig KVM\narch/arm64/kvm/Kconfig-21-\tbool \"Kernel-based Virtual Machine (KVM) support\"\n--\narch/loongarch/kvm/Kconfig=18=if VIRTUALIZATION\narch/loongarch/kvm/Kconfig-19-\narch/loongarch/kvm/Kconfig:20:config KVM\narch/loongarch/kvm/Kconfig-21-\ttristate \"Kernel-based Virtual Machine (KVM) support\"\n--\narch/mips/kvm/Kconfig=16=if VIRTUALIZATION\narch/mips/kvm/Kconfig-17-\narch/mips/kvm/Kconfig:18:config KVM\narch/mips/kvm/Kconfig-19-\ttristate \"Kernel-based Virtual Machine (KVM) support\"\n--\narch/mips/kvm/Kconfig-30-\narch/mips/kvm/Kconfig:31:config KVM_MIPS_DEBUG_COP0_COUNTERS\narch/mips/kvm/Kconfig-32-\tbool \"Maintain counters for COP0 accesses\"\n--\narch/powerpc/kvm/Kconfig=18=if VIRTUALIZATION\narch/powerpc/kvm/Kconfig-19-\narch/powerpc/kvm/Kconfig:20:config KVM\narch/powerpc/kvm/Kconfig-21-\tbool\n--\narch/powerpc/kvm/Kconfig-25-\narch/powerpc/kvm/Kconfig:26:config KVM_BOOK3S_HANDLER\narch/powerpc/kvm/Kconfig-27-\tbool\narch/powerpc/kvm/Kconfig-28-\narch/powerpc/kvm/Kconfig:29:config KVM_BOOK3S_32_HANDLER\narch/powerpc/kvm/Kconfig-30-\tbool\n--\narch/powerpc/kvm/Kconfig-33-\narch/powerpc/kvm/Kconfig:34:config KVM_BOOK3S_64_HANDLER\narch/powerpc/kvm/Kconfig-35-\tbool\n--\narch/powerpc/kvm/Kconfig-37-\narch/powerpc/kvm/Kconfig:38:config KVM_BOOK3S_PR_POSSIBLE\narch/powerpc/kvm/Kconfig-39-\tbool\n--\narch/powerpc/kvm/Kconfig-41-\narch/powerpc/kvm/Kconfig:42:config KVM_BOOK3S_HV_POSSIBLE\narch/powerpc/kvm/Kconfig-43-\tbool\narch/powerpc/kvm/Kconfig-44-\narch/powerpc/kvm/Kconfig:45:config KVM_BOOK3S_32\narch/powerpc/kvm/Kconfig-46-\ttristate \"KVM support for PowerPC book3s_32 processors\"\n--\narch/powerpc/kvm/Kconfig-61-\narch/powerpc/kvm/Kconfig:62:config KVM_BOOK3S_64\narch/powerpc/kvm/Kconfig-63-\ttristate \"KVM support for PowerPC book3s_64 processors\"\n--\narch/powerpc/kvm/Kconfig-78-\narch/powerpc/kvm/Kconfig:79:config KVM_BOOK3S_64_HV\narch/powerpc/kvm/Kconfig-80-\ttristate \"KVM for POWER7 and later using hypervisor mode in host\"\n--\narch/powerpc/kvm/Kconfig-99-\narch/powerpc/kvm/Kconfig:100:config KVM_BOOK3S_64_PR\narch/powerpc/kvm/Kconfig-101-\ttristate \"KVM support without using hypervisor mode in host\"\n--\narch/powerpc/kvm/Kconfig-125-\narch/powerpc/kvm/Kconfig:126:config KVM_BOOK3S_HV_EXIT_TIMING\narch/powerpc/kvm/Kconfig-127-\tbool\narch/powerpc/kvm/Kconfig-128-\narch/powerpc/kvm/Kconfig:129:config KVM_BOOK3S_HV_P9_TIMING\narch/powerpc/kvm/Kconfig-130-\tbool \"Detailed timing for the P9 entry point\"\n--\narch/powerpc/kvm/Kconfig-141-\narch/powerpc/kvm/Kconfig:142:config KVM_BOOK3S_HV_P8_TIMING\narch/powerpc/kvm/Kconfig-143-\tbool \"Detailed timing for hypervisor real-mode code (for POWER8)\"\n--\narch/powerpc/kvm/Kconfig-156-\narch/powerpc/kvm/Kconfig:157:config KVM_BOOK3S_HV_NESTED_PMU_WORKAROUND\narch/powerpc/kvm/Kconfig-158-\tbool \"Nested L0 host workaround for L1 KVM host PMU handling bug\" if EXPERT\n--\narch/powerpc/kvm/Kconfig-171-\narch/powerpc/kvm/Kconfig:172:config KVM_BOOK3S_HV_PMU\narch/powerpc/kvm/Kconfig-173-\ttristate \"Hypervisor Perf events for KVM Book3s-HV\"\n--\narch/powerpc/kvm/Kconfig-183-\narch/powerpc/kvm/Kconfig:184:config KVM_BOOKE_HV\narch/powerpc/kvm/Kconfig-185-\tbool\narch/powerpc/kvm/Kconfig-186-\narch/powerpc/kvm/Kconfig:187:config KVM_EXIT_TIMING\narch/powerpc/kvm/Kconfig-188-\tbool \"Detailed exit timing\"\n--\narch/powerpc/kvm/Kconfig-197-\narch/powerpc/kvm/Kconfig:198:config KVM_E500V2\narch/powerpc/kvm/Kconfig-199-\tbool \"KVM support for PowerPC E500v2 processors\"\n--\narch/powerpc/kvm/Kconfig-212-\narch/powerpc/kvm/Kconfig:213:config KVM_E500MC\narch/powerpc/kvm/Kconfig-214-\tbool \"KVM support for PowerPC E500MC/E5500/E6500 processors\"\n--\narch/powerpc/kvm/Kconfig-228-\narch/powerpc/kvm/Kconfig:229:config KVM_MPIC\narch/powerpc/kvm/Kconfig-230-\tbool \"KVM in-kernel MPIC emulation\"\n--\narch/powerpc/kvm/Kconfig-240-\narch/powerpc/kvm/Kconfig:241:config KVM_XICS\narch/powerpc/kvm/Kconfig-242-\tbool \"KVM in-kernel XICS emulation\"\n--\narch/powerpc/kvm/Kconfig-250-\narch/powerpc/kvm/Kconfig:251:config KVM_XIVE\narch/powerpc/kvm/Kconfig-252-\tbool\n--\narch/powerpc/platforms/Kconfig=22=source \"arch/powerpc/platforms/microwatt/Kconfig\"\narch/powerpc/platforms/Kconfig-23-\narch/powerpc/platforms/Kconfig:24:config KVM_GUEST\narch/powerpc/platforms/Kconfig-25-\tbool \"KVM Guest support\"\n--\narch/riscv/kvm/Kconfig=18=if VIRTUALIZATION\narch/riscv/kvm/Kconfig-19-\narch/riscv/kvm/Kconfig:20:config KVM\narch/riscv/kvm/Kconfig-21-\ttristate \"Kernel-based Virtual Machine (KVM) support\"\n--\narch/s390/kvm/Kconfig=17=if VIRTUALIZATION\narch/s390/kvm/Kconfig-18-\narch/s390/kvm/Kconfig:19:config KVM\narch/s390/kvm/Kconfig-20-\tdef_tristate y\n--\narch/s390/kvm/Kconfig-46-\narch/s390/kvm/Kconfig:47:config KVM_S390_UCONTROL\narch/s390/kvm/Kconfig-48-\tbool \"Userspace controlled virtual machines\"\n--\narch/x86/Kconfig=826=source \"arch/x86/xen/Kconfig\"\narch/x86/Kconfig-827-\narch/x86/Kconfig:828:config KVM_GUEST\narch/x86/Kconfig-829-\tbool \"KVM Guest support (including kvmclock)\"\n--\narch/x86/kvm/Kconfig=18=if VIRTUALIZATION\narch/x86/kvm/Kconfig-19-\narch/x86/kvm/Kconfig:20:config KVM_X86\narch/x86/kvm/Kconfig-21-\tdef_tristate KVM if (KVM_INTEL != n || KVM_AMD != n)\n--\narch/x86/kvm/Kconfig-51-\narch/x86/kvm/Kconfig:52:config KVM\narch/x86/kvm/Kconfig-53-\ttristate \"Kernel-based Virtual Machine (KVM) support\"\n--\narch/x86/kvm/Kconfig-68-\narch/x86/kvm/Kconfig:69:config KVM_WERROR\narch/x86/kvm/Kconfig-70-\tbool \"Compile KVM with -Werror\"\n--\narch/x86/kvm/Kconfig-82-\narch/x86/kvm/Kconfig:83:config KVM_SW_PROTECTED_VM\narch/x86/kvm/Kconfig-84-\tbool \"Enable support for KVM software-protected VMs\"\n--\narch/x86/kvm/Kconfig-95-\narch/x86/kvm/Kconfig:96:config KVM_INTEL\narch/x86/kvm/Kconfig-97-\ttristate \"KVM for Intel (and compatible) processors support\"\n--\narch/x86/kvm/Kconfig-106-\narch/x86/kvm/Kconfig:107:config KVM_INTEL_PROVE_VE\narch/x86/kvm/Kconfig-108- bool \"Check that guests do not receive #VE exceptions\"\n--\narch/x86/kvm/Kconfig=122=config X86_SGX_KVM\n--\narch/x86/kvm/Kconfig-133-\narch/x86/kvm/Kconfig:134:config KVM_INTEL_TDX\narch/x86/kvm/Kconfig-135-\tbool \"Intel Trust Domain Extensions (TDX) support\"\n--\narch/x86/kvm/Kconfig-145-\narch/x86/kvm/Kconfig:146:config KVM_AMD\narch/x86/kvm/Kconfig-147-\ttristate \"KVM for AMD processors support\"\n--\narch/x86/kvm/Kconfig-155-\narch/x86/kvm/Kconfig:156:config KVM_AMD_SEV\narch/x86/kvm/Kconfig-157-\tbool \"AMD Secure Encrypted Virtualization (SEV) support\"\n--\narch/x86/kvm/Kconfig-171-\narch/x86/kvm/Kconfig:172:config KVM_IOAPIC\narch/x86/kvm/Kconfig-173-\tbool \"I/O APIC, PIC, and PIT emulation\"\n--\narch/x86/kvm/Kconfig-181-\narch/x86/kvm/Kconfig:182:config KVM_SMM\narch/x86/kvm/Kconfig-183-\tbool \"System Management Mode emulation\"\n--\narch/x86/kvm/Kconfig-192-\narch/x86/kvm/Kconfig:193:config KVM_HYPERV\narch/x86/kvm/Kconfig-194-\tbool \"Support for Microsoft Hyper-V emulation\"\n--\narch/x86/kvm/Kconfig-206-\narch/x86/kvm/Kconfig:207:config KVM_XEN\narch/x86/kvm/Kconfig-208-\tbool \"Support for Xen hypercall interface\"\n--\narch/x86/kvm/Kconfig-215-\narch/x86/kvm/Kconfig:216:config KVM_PROVE_MMU\narch/x86/kvm/Kconfig-217-\tbool \"Prove KVM MMU correctness\"\n--\narch/x86/kvm/Kconfig-228-\narch/x86/kvm/Kconfig:229:config KVM_EXTERNAL_WRITE_TRACKING\narch/x86/kvm/Kconfig-230-\tbool\narch/x86/kvm/Kconfig-231-\narch/x86/kvm/Kconfig:232:config KVM_MAX_NR_VCPUS\narch/x86/kvm/Kconfig-233-\tint \"Maximum number of vCPUs per KVM guest\"\n--\nvirt/kvm/Kconfig-3-\nvirt/kvm/Kconfig:4:config KVM_COMMON\nvirt/kvm/Kconfig-5- bool\n--\nvirt/kvm/Kconfig=39=config NEED_KVM_DIRTY_RING_WITH_BITMAP\n--\nvirt/kvm/Kconfig-42-\nvirt/kvm/Kconfig:43:config KVM_MMIO\nvirt/kvm/Kconfig-44- bool\nvirt/kvm/Kconfig-45-\nvirt/kvm/Kconfig:46:config KVM_ASYNC_PF\nvirt/kvm/Kconfig-47- bool\n--\nvirt/kvm/Kconfig-49-# Toggle to switch between direct notification and batch job\nvirt/kvm/Kconfig:50:config KVM_ASYNC_PF_SYNC\nvirt/kvm/Kconfig-51- bool\n--\nvirt/kvm/Kconfig=59=config HAVE_KVM_CPU_RELAX_INTERCEPT\n--\nvirt/kvm/Kconfig-61-\nvirt/kvm/Kconfig:62:config KVM_VFIO\nvirt/kvm/Kconfig-63- bool\n--\nvirt/kvm/Kconfig=65=config HAVE_KVM_INVALID_WAKEUPS\n--\nvirt/kvm/Kconfig-67-\nvirt/kvm/Kconfig:68:config KVM_GENERIC_DIRTYLOG_READ_PROTECT\nvirt/kvm/Kconfig-69- bool\nvirt/kvm/Kconfig-70-\nvirt/kvm/Kconfig:71:config KVM_GENERIC_PRE_FAULT_MEMORY\nvirt/kvm/Kconfig-72- bool\nvirt/kvm/Kconfig-73-\nvirt/kvm/Kconfig:74:config KVM_COMPAT\nvirt/kvm/Kconfig-75- def_bool y\n--\nvirt/kvm/Kconfig=91=config HAVE_KVM_PM_NOTIFIER\n--\nvirt/kvm/Kconfig-93-\nvirt/kvm/Kconfig:94:config KVM_GENERIC_HARDWARE_ENABLING\nvirt/kvm/Kconfig-95- bool\nvirt/kvm/Kconfig-96-\nvirt/kvm/Kconfig:97:config KVM_ELIDE_TLB_FLUSH_IF_YOUNG\nvirt/kvm/Kconfig-98- bool\nvirt/kvm/Kconfig-99-\nvirt/kvm/Kconfig:100:config KVM_MMU_LOCKLESS_AGING\nvirt/kvm/Kconfig-101- bool\nvirt/kvm/Kconfig-102-\nvirt/kvm/Kconfig:103:config KVM_GENERIC_MEMORY_ATTRIBUTES\nvirt/kvm/Kconfig-104- bool\nvirt/kvm/Kconfig-105-\nvirt/kvm/Kconfig:106:config KVM_GUEST_MEMFD\nvirt/kvm/Kconfig-107- select XARRAY_MULTI\n"
} |
| 13/2 | 2026/08/06 14:36 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 14774 output: 152 thoughts: 510 Thoughts: **Analysis of KVM S390 Machine Check Handling for Fuzzing** Okay, so I'm looking at this patch targeting the `KVM` configuration. It appears to modify the functions `kvm_s390_reinject_machine_check` and `s390_backup_mcck_info`. My initial thought is that both are functional changes, and I need to determine the best approach for fuzzing them. `kvm_s390_reinject_machine_check` gets called from `vcpu_post_run` and `do_vsie_run`, which are key parts of KVM execution. `s390_backup_mcck_info`, on the other hand, is called from `s390_do_machine_check`, the machine check *handler*. My first instinct is to set `WorthFuzzing=true`. Now, for focus symbols, originally I was going to list both. My thinking was, I'd include `kvm_s390_reinject_machine_check`, and list `s390_backup_mcck_info` as well, even if it's static and not instrumented. But then I remembered that the prompt says to prefer non-static, non-inlined API entrypoint functions. I need to re-evaluate what's a suitable focus symbol. `s390_backup_mcck_info` *is* static, so that's out. However, `s390_do_machine_check` is the actual entry point for `s390_backup_mcck_info`, so it's a good candidate, but it's the machine check handler itself. My gut says it might be tough to trigger that directly from a fuzzer unless it can inject machine checks, so the best bet is probably to target `kvm_s390_reinject_machine_check` instead. Wait a second... it looks like `kvm_s390_reinject_machine_check` is called when `sie_return` equals `SIE64_RETURN_MCCK`. That means this is called when the SIE instruction – the instruction that *runs* the guest – exits due to a machine check. Okay, that changes things! That means the fuzzer *can* definitely trigger this by either running a guest that itself causes a machine check, or if the host experiences a machine check while running the guest. So, I can make the fuzzer target that. This simplifies things. Therefore, for focus symbols, I'll list `kvm_s390_reinject_machine_check`, knowing it's reachable through the guest or host triggering a machine check. The important config is `KVM`. I'm ready to write the response. |
| 14/2 | 2026/08/06 14:36 | tool | set-results |
0mArgs:{
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_s390_reinject_machine_check",
"s390_do_machine_check"
],
"Reasoning": "The patch modifies how machine checks are handled and reinjected into KVM guests on s390. It changes `kvm_s390_reinject_machine_check` to always inject the machine check to the specific vcpu rather than as a floating machine check, and updates the `MCCK_CODE_NO_GUEST` mask. These are functional changes in reachable KVM and architecture-specific code.",
"WorthFuzzing": true
}Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_s390_reinject_machine_check",
"s390_do_machine_check"
],
"Reasoning": "The patch modifies how machine checks are handled and reinjected into KVM guests on s390. It changes `kvm_s390_reinject_machine_check` to always inject the machine check to the specific vcpu rather than as a floating machine check, and updates the `MCCK_CODE_NO_GUEST` mask. These are functional changes in reachable KVM and architecture-specific code.",
"WorthFuzzing": true
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|