Linux 5.4.131
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.131 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 +- arch/s390/include/asm/stacktrace.h | 18 +++++++++++------- arch/x86/kvm/svm.c | 33 ++++++++++++++++++++++----------- drivers/xen/events/events_base.c | 23 +++++++++++++++++++---- 4 files changed, 53 insertions(+), 23 deletions(-)
Alper Gun (1):
KVM: SVM: Call SEV Guest Decommission if ASID binding fails
David Rientjes (1):
KVM: SVM: Periodically schedule when unregistering regions on destroy
Greg Kroah-Hartman (1):
Linux 5.4.131
Heiko Carstens (1):
s390/stack: fix possible register corruption with stack switch helper
Juergen Gross (1):
xen/events: reset active flag for lateeoi events later
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 130 +SUBLEVEL = 131 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/s390/include/asm/stacktrace.h +11 -7
@@ -79,12 +79,16 @@ struct stack_frame {CALL_ARGS_4 (arg1, arg2, arg3, arg4); \ register unsigned long r4 asm("6") = (unsigned long)(arg5) -#define CALL_FMT_0 "=&d" (r2) : -#define CALL_FMT_1 "+&d" (r2) : -#define CALL_FMT_2 CALL_FMT_1 "d" (r3), -#define CALL_FMT_3 CALL_FMT_2 "d" (r4), -#define CALL_FMT_4 CALL_FMT_3 "d" (r5), -#define CALL_FMT_5 CALL_FMT_4 "d" (r6), +/* +* To keep this simple mark register 2-6 as being changed (volatile) +* by the called function, even though register 6 is saved/nonvolatile. +*/ +#define CALL_FMT_0 "=&d" (r2) +#define CALL_FMT_1 "+&d" (r2) +#define CALL_FMT_2 CALL_FMT_1, "+&d" (r3) +#define CALL_FMT_3 CALL_FMT_2, "+&d" (r4) +#define CALL_FMT_4 CALL_FMT_3, "+&d" (r5) +#define CALL_FMT_5 CALL_FMT_4, "+&d" (r6)#define CALL_CLOBBER_5 "0", "1", "14", "cc", "memory"#define CALL_CLOBBER_4 CALL_CLOBBER_5
@@ -105,7 +109,7 @@ struct stack_frame {" brasl 14,%[_fn]\n" \" la 15,0(%[_prev])\n" \ : [_prev] "=&a" (prev), CALL_FMT_##nr \ -[_stack] " a" (stack), \ +: [_stack] " a" (stack), \ [_bc] " i" (offsetof(struct stack_frame, back_chain)), \ [_fn] " X " (fn) : CALL_CLOBBER_##nr); \ r2; \
arch/x86/kvm/svm.c +22 -11
@@ -1794,9 +1794,25 @@ static void sev_asid_free(struct kvm *kvm)__sev_asid_free (sev->asid); } -static void sev_unbind_asid (struct kvm *kvm,unsigned int handle) +static void sev_decommission (unsigned int handle) {struct sev_data_decommission *decommission; + +if (!handle) +return ; + + decommission =kzalloc (sizeof (*decommission),GFP_KERNEL ); +if (!decommission) +return ; + + decommission->handle = handle; +sev_guest_decommission (decommission,NULL ); + +kfree (decommission); +} + +static void sev_unbind_asid (struct kvm *kvm,unsigned int handle) +{struct sev_data_deactivate *data;if (!handle)
@@ -1814,15 +1830,7 @@ static void sev_unbind_asid(struct kvm *kvm, unsigned int handle)sev_guest_df_flush (NULL );kfree (data); - decommission =kzalloc (sizeof (*decommission),GFP_KERNEL ); -if (!decommission) -return ; - -/* decommission handle */ - decommission->handle = handle; -sev_guest_decommission (decommission,NULL ); - -kfree (decommission); +sev_decommission (handle); } static struct page **sev_pin_memory(struct kvm *kvm, unsigned long uaddr,
@@ -1960,6 +1968,7 @@ static void sev_vm_destroy(struct kvm *kvm)list_for_each_safe (pos, q, head) {__unregister_enc_region_locked (kvm, list_entry(pos, struct enc_region, list)); +cond_resched (); } }
@@ -6475,8 +6484,10 @@ static int sev_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp)/* Bind ASID to this guest */ ret =sev_bind_asid (kvm, start->handle, error); -if (ret) +if (ret) { +sev_decommission (start->handle); goto e_free_session; + }/* return handle to userspace */ params.handle = start->handle;
drivers/xen/events/events_base.c +19 -4
@@ -525,6 +525,9 @@ static void xen_irq_lateeoi_locked(struct irq_info *info, bool spurious) } info->eoi_time =0 ; + +/* is_active hasn't been reset yet, do it now. */ +smp_store_release (&info->is_active,0 );do_unmask (info,EVT_MASK_REASON_EOI_PENDING ); }
@@ -1781,10 +1784,22 @@ static void lateeoi_ack_dynirq(struct irq_data *data)struct irq_info *info =info_for_irq (data->irq);evtchn_port_t evtchn = info ? info->evtchn :0 ; -if (VALID_EVTCHN (evtchn)) { -do_mask (info,EVT_MASK_REASON_EOI_PENDING ); -ack_dynirq (data); - } +if (!VALID_EVTCHN (evtchn)) +return ; + +do_mask (info,EVT_MASK_REASON_EOI_PENDING ); + +if (unlikely (irqd_is_setaffinity_pending (data)) && +likely (!irqd_irq_disabled (data))) { +do_mask (info,EVT_MASK_REASON_TEMPORARY ); + +clear_evtchn (evtchn); + +irq_move_masked_irq (data); + +do_unmask (info,EVT_MASK_REASON_TEMPORARY ); + }else +clear_evtchn (evtchn); }static void lateeoi_mask_ack_dynirq (struct irq_data *data)
Samuel Zou
Tested-by Hulk RobotQuoted 4 lines · Greg Kroah-Hartman
I'm announcing the release of the 5.4.131 kernel.
All users of the 5.4 kernel series must upgrade.
Quoted 9 lines
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitlinux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summarythanks,
greg k-h
Tested on arm64 and x86 for 5.4.131,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-5.4.y
Version: 5.4.131
Commit: e8d9b740a5503f5bd2948a51a0c3fa564c82cfe3
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8905
passed: 8905
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8905
passed: 8905
failed: 0
timeout: 0
--------------------------------------------------------------------