Patch "s390/kvm: remove dependency on struct save_area definition" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
s390/kvm: remove dependency on struct save_area definition
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-kvm-remove-dependency-on-struct-save_area-definition.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d9a3a09af54d01ab8b0c320580f4f95328d4a7acMon Sep 17 00:00:00 2001
From: Martin Schwidefsky <[email protected]>
Date: Fri, 23 Oct 2015 09:02:32 +0200
Subject: s390/kvm: remove dependency on struct save_area definition
From: Martin Schwidefsky <[email protected]>
commit d9a3a09af54d01ab8b0c320580f4f95328d4a7ac upstream.
Replace the offsets based on the struct area_area with the offset constants from asm-offsets.c based on the struct _lowcore.
--- arch/s390/kernel/asm-offsets.c | 1 + arch/s390/kvm/kvm-s390.c | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-)
arch/s390/kernel/asm-offsets.c +1 -0
@@ -181,6 +181,7 @@ int main(void)OFFSET (__LC_PSW_SAVE_AREA, _lowcore, psw_save_area);OFFSET (__LC_PREFIX_SAVE_AREA, _lowcore, prefixreg_save_area);OFFSET (__LC_FP_CREG_SAVE_AREA, _lowcore, fpt_creg_save_area); +OFFSET (__LC_TOD_PROGREG_SAVE_AREA, _lowcore, tod_progreg_save_area);OFFSET (__LC_CPU_TIMER_SAVE_AREA, _lowcore, cpu_timer_save_area);OFFSET (__LC_CLOCK_COMP_SAVE_AREA, _lowcore, clock_comp_save_area);OFFSET (__LC_AREGS_SAVE_AREA, _lowcore, access_regs_save_area);
arch/s390/kvm/kvm-s390.c +15 -15
@@ -2273,37 +2273,37 @@ int kvm_s390_store_status_unloaded(strucu64 clkcomp;int rc; + px =kvm_s390_get_prefix (vcpu);if (gpa ==KVM_S390_STORE_STATUS_NOADDR ) {if (write_guest_abs (vcpu,163 , &archmode,1 ))return -EFAULT ; - gpa =SAVE_AREA_BASE ; + gpa =0 ; }else if (gpa ==KVM_S390_STORE_STATUS_PREFIXED ) {if (write_guest_real (vcpu,163 , &archmode,1 ))return -EFAULT ; - gpa =kvm_s390_real_to_abs (vcpu,SAVE_AREA_BASE ); - } - rc =write_guest_abs (vcpu, gpa + offsetof(struct save_area , fp_regs), + gpa = px; + }else + gpa -= __LC_FPREGS_SAVE_AREA; + rc =write_guest_abs (vcpu, gpa + __LC_FPREGS_SAVE_AREA, vcpu->arch.guest_fpregs.fprs,128 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , gp_regs), + rc |=write_guest_abs (vcpu, gpa + __LC_GPREGS_SAVE_AREA, vcpu->run->s.regs.gprs,128 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , psw), + rc |=write_guest_abs (vcpu, gpa + __LC_PSW_SAVE_AREA, &vcpu->arch.sie_block->gpsw,16 ); - px =kvm_s390_get_prefix (vcpu); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , pref_reg), + rc |=write_guest_abs (vcpu, gpa + __LC_PREFIX_SAVE_AREA, &px,4 ); - rc |=write_guest_abs (vcpu, - gpa + offsetof(struct save_area , fp_ctrl_reg), + rc |=write_guest_abs (vcpu, gpa + __LC_FP_CREG_SAVE_AREA, &vcpu->arch.guest_fpregs.fpc,4 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , tod_reg), + rc |=write_guest_abs (vcpu, gpa + __LC_TOD_PROGREG_SAVE_AREA, &vcpu->arch.sie_block->todpr,4 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , timer), + rc |=write_guest_abs (vcpu, gpa + __LC_CPU_TIMER_SAVE_AREA, &vcpu->arch.sie_block->cputm,8 ); clkcomp = vcpu->arch.sie_block->ckc >>8 ; - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , clk_cmp), + rc |=write_guest_abs (vcpu, gpa + __LC_CLOCK_COMP_SAVE_AREA, &clkcomp,8 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , acc_regs), + rc |=write_guest_abs (vcpu, gpa + __LC_AREGS_SAVE_AREA, &vcpu->run->s.regs.acrs,64 ); - rc |=write_guest_abs (vcpu, gpa + offsetof(struct save_area , ctrl_regs), + rc |=write_guest_abs (vcpu, gpa + __LC_CREGS_SAVE_AREA, &vcpu->arch.sie_block->gcr,128 );return rc ? -EFAULT :0 ; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/s390-kvm-remove-dependency-on-struct-save_area-definition.patch