From 3a2f7bf0fc6cb85594395d9d874edd100b0e39df Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: May 23 2023 12:06:52 +0000 Subject: KVM: x86: avoid misreporting level-triggered irqs as edge-triggered in tracing (git-fixes). --- diff --git a/patches.suse/KVM-x86-avoid-misreporting-level-triggered-irqs-as-e.patch b/patches.suse/KVM-x86-avoid-misreporting-level-triggered-irqs-as-e.patch new file mode 100644 index 0000000..22ab451 --- /dev/null +++ b/patches.suse/KVM-x86-avoid-misreporting-level-triggered-irqs-as-e.patch @@ -0,0 +1,51 @@ +Patch-mainline: v5.1-rc6 +Git-commit: 7a223e06b1a411cef6c4cd7a9b9a33c8d225b10e +References: git-fixes +From: Vitaly Kuznetsov +Date: Wed, 27 Mar 2019 15:12:20 +0100 +Subject: [PATCH] KVM: x86: avoid misreporting level-triggered irqs as + edge-triggered in tracing + +In __apic_accept_irq() interface trig_mode is int and actually on some code +paths it is set above u8: + +kvm_apic_set_irq() extracts it from 'struct kvm_lapic_irq' where trig_mode +is u16. This is done on purpose as e.g. kvm_set_msi_irq() sets it to +(1 << 15) & e->msi.data + +kvm_apic_local_deliver sets it to reg & (1 << 15). + +Fix the immediate issue by making 'tm' into u16. We may also want to adjust +__apic_accept_irq() interface and use proper sizes for vector, level, +trig_mode but this is not urgent. + +Signed-off-by: Vitaly Kuznetsov +Signed-off-by: Paolo Bonzini +Signed-off-by: Juergen Gross +--- + arch/x86/kvm/trace.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h +index 6432d08c7de7..4d47a2631d1f 100644 +--- a/arch/x86/kvm/trace.h ++++ b/arch/x86/kvm/trace.h +@@ -438,13 +438,13 @@ TRACE_EVENT(kvm_apic_ipi, + ); + + TRACE_EVENT(kvm_apic_accept_irq, +- TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec), ++ TP_PROTO(__u32 apicid, __u16 dm, __u16 tm, __u8 vec), + TP_ARGS(apicid, dm, tm, vec), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( __u16, dm ) +- __field( __u8, tm ) ++ __field( __u16, tm ) + __field( __u8, vec ) + ), + +-- +2.35.3 + diff --git a/series.conf b/series.conf index 39589c3..b8ae272 100644 --- a/series.conf +++ b/series.conf @@ -48855,6 +48855,7 @@ patches.suse/kvm-x86-don-t-clear-efer-during-smm-transitions-for-32-bit-vcpu patches.suse/kvm-x86-always-use-32-bit-smram-save-state-for-32-bit-kernels patches.suse/0001-KVM-fix-spectrev1-gadgets.patch + patches.suse/KVM-x86-avoid-misreporting-level-triggered-irqs-as-e.patch patches.suse/mac80211-fix-unaligned-access-in-mesh-table-hash-fun.patch patches.suse/cfg80211-Handle-WMM-rules-in-regulatory-domain-inter.patch patches.suse/mac80211-fix-memory-accounting-with-A-MSDU-aggregati.patch