Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-03-01 Thread Greg Kroah-Hartman
On Fri, Mar 01, 2013 at 10:22:23AM +0100, Jiri Slaby wrote:
> On 03/01/2013 08:50 AM, Christian Borntraeger wrote:
> > On 28/02/13 23:26, Jiri Slaby wrote:
> >> On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
> >>> 3.0-stable review patch.  If anyone has any objections, please let me 
> >>> know.
> >>>
> >>> --
> >>>
> >>> From: Christian Borntraeger 
> >>>
> >>> commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
> >>>
> >>> On store status we need to copy the current state of registers
> >>> into a save area. Currently we might save stale versions:
> >>> The sie state descriptor doesnt have fields for guest ACRS,FPRS,
> >>> those registers are simply stored in the host registers. The host
> >>> program must copy these away if needed. We do that in vcpu_put/load.
> >>>
> >>> If we now do a store status in KVM code between vcpu_put/load, the
> >>> saved values are not up-to-date. Lets collect the ACRS/FPRS before
> >>> saving them.
> >>>
> >>> This also fixes some strange problems with hotplug and virtio-ccw,
> >>> since the low level machine check handler (on hotplug a machine check
> >>> will happen) will revalidate all registers with the content of the
> >>> save area.
> >>>
> >>> Signed-off-by: Christian Borntraeger 
> >>> Signed-off-by: Gleb Natapov 
> >>> Signed-off-by: Greg Kroah-Hartman 
> >>>
> >>> ---
> >>>  arch/s390/kvm/kvm-s390.c |8 
> >>>  1 file changed, 8 insertions(+)
> >>>
> >>> --- a/arch/s390/kvm/kvm-s390.c
> >>> +++ b/arch/s390/kvm/kvm-s390.c
> >>> @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
> >>>   } else
> >>>   prefix = 0;
> >>>  
> >>> + /*
> >>> +  * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
> >>> +  * copying in vcpu load/put. Lets update our copies before we save
> >>> +  * it into the save area
> >>> +  */
> >>> + save_fp_regs(>arch.guest_fpregs);
> >>> + save_access_regs(vcpu->run->s.regs.acrs);
> >>
> >> kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
> >> fails with:
> >> arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
> >> arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
> >> named 's'
> >>
> >> I believe the fix is just to remove save_access_regs, right?
> > 
> > Before the sync reg changes, the ACRS were saved in the vcpu->arch.
> > So the fix would look like 
> > 
> > save_access_regs(vcpu->arch.guest_acrs);
> 
> Fix attached.

Thanks, now applied.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-03-01 Thread Jiri Slaby
On 03/01/2013 08:50 AM, Christian Borntraeger wrote:
> On 28/02/13 23:26, Jiri Slaby wrote:
>> On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
>>> 3.0-stable review patch.  If anyone has any objections, please let me know.
>>>
>>> --
>>>
>>> From: Christian Borntraeger 
>>>
>>> commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
>>>
>>> On store status we need to copy the current state of registers
>>> into a save area. Currently we might save stale versions:
>>> The sie state descriptor doesnt have fields for guest ACRS,FPRS,
>>> those registers are simply stored in the host registers. The host
>>> program must copy these away if needed. We do that in vcpu_put/load.
>>>
>>> If we now do a store status in KVM code between vcpu_put/load, the
>>> saved values are not up-to-date. Lets collect the ACRS/FPRS before
>>> saving them.
>>>
>>> This also fixes some strange problems with hotplug and virtio-ccw,
>>> since the low level machine check handler (on hotplug a machine check
>>> will happen) will revalidate all registers with the content of the
>>> save area.
>>>
>>> Signed-off-by: Christian Borntraeger 
>>> Signed-off-by: Gleb Natapov 
>>> Signed-off-by: Greg Kroah-Hartman 
>>>
>>> ---
>>>  arch/s390/kvm/kvm-s390.c |8 
>>>  1 file changed, 8 insertions(+)
>>>
>>> --- a/arch/s390/kvm/kvm-s390.c
>>> +++ b/arch/s390/kvm/kvm-s390.c
>>> @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
>>> } else
>>> prefix = 0;
>>>  
>>> +   /*
>>> +* The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
>>> +* copying in vcpu load/put. Lets update our copies before we save
>>> +* it into the save area
>>> +*/
>>> +   save_fp_regs(>arch.guest_fpregs);
>>> +   save_access_regs(vcpu->run->s.regs.acrs);
>>
>> kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
>> fails with:
>> arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
>> arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
>> named 's'
>>
>> I believe the fix is just to remove save_access_regs, right?
> 
> Before the sync reg changes, the ACRS were saved in the vcpu->arch.
> So the fix would look like 
> 
>   save_access_regs(vcpu->arch.guest_acrs);

Fix attached.

thanks,
-- 
js
suse labs
From: Jiri Slaby 
Subject: s390/kvm: Fix store status for ACRS/FPRS fix
Patch-mainline: no, submitted on 1st Mar 2013

In 3.0.67, commit 58c9ce6fad8e00d9726447f939fe7e78e2aec891 (s390/kvm:
Fix store status for ACRS/FPRS), upstream commit
15bc8d8457875f495c59d933b05770ba88d1eacb, added a call to
save_access_regs to save ACRS. But we do not have ARCS in kvm_run in
3.0 yet, so this results in:
arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member named 's'

Fix it by saving guest_acrs which is where ARCS are in 3.0.

Signed-off-by: Jiri Slaby 
---
 arch/s390/kvm/kvm-s390.c |1 -
 1 file changed, 1 deletion(-)

--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -590,7 +590,7 @@ int kvm_s390_vcpu_store_status(struct kv
 	 * it into the save area
 	 */
 	save_fp_regs(>arch.guest_fpregs);
-	save_access_regs(vcpu->run->s.regs.acrs);
+	save_access_regs(vcpu->arch.guest_acrs);
 
 	if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
 			vcpu->arch.guest_fpregs.fprs, 128, prefix))


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-03-01 Thread Jiri Slaby
On 03/01/2013 08:50 AM, Christian Borntraeger wrote:
 On 28/02/13 23:26, Jiri Slaby wrote:
 On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
 3.0-stable review patch.  If anyone has any objections, please let me know.

 --

 From: Christian Borntraeger borntrae...@de.ibm.com

 commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.

 On store status we need to copy the current state of registers
 into a save area. Currently we might save stale versions:
 The sie state descriptor doesnt have fields for guest ACRS,FPRS,
 those registers are simply stored in the host registers. The host
 program must copy these away if needed. We do that in vcpu_put/load.

 If we now do a store status in KVM code between vcpu_put/load, the
 saved values are not up-to-date. Lets collect the ACRS/FPRS before
 saving them.

 This also fixes some strange problems with hotplug and virtio-ccw,
 since the low level machine check handler (on hotplug a machine check
 will happen) will revalidate all registers with the content of the
 save area.

 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
 Signed-off-by: Gleb Natapov g...@redhat.com
 Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org

 ---
  arch/s390/kvm/kvm-s390.c |8 
  1 file changed, 8 insertions(+)

 --- a/arch/s390/kvm/kvm-s390.c
 +++ b/arch/s390/kvm/kvm-s390.c
 @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
 } else
 prefix = 0;
  
 +   /*
 +* The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
 +* copying in vcpu load/put. Lets update our copies before we save
 +* it into the save area
 +*/
 +   save_fp_regs(vcpu-arch.guest_fpregs);
 +   save_access_regs(vcpu-run-s.regs.acrs);

 kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
 fails with:
 arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
 arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
 named 's'

 I believe the fix is just to remove save_access_regs, right?
 
 Before the sync reg changes, the ACRS were saved in the vcpu-arch.
 So the fix would look like 
 
   save_access_regs(vcpu-arch.guest_acrs);

Fix attached.

thanks,
-- 
js
suse labs
From: Jiri Slaby jsl...@suse.cz
Subject: s390/kvm: Fix store status for ACRS/FPRS fix
Patch-mainline: no, submitted on 1st Mar 2013

In 3.0.67, commit 58c9ce6fad8e00d9726447f939fe7e78e2aec891 (s390/kvm:
Fix store status for ACRS/FPRS), upstream commit
15bc8d8457875f495c59d933b05770ba88d1eacb, added a call to
save_access_regs to save ACRS. But we do not have ARCS in kvm_run in
3.0 yet, so this results in:
arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member named 's'

Fix it by saving guest_acrs which is where ARCS are in 3.0.

Signed-off-by: Jiri Slaby jsl...@suse.cz
---
 arch/s390/kvm/kvm-s390.c |1 -
 1 file changed, 1 deletion(-)

--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -590,7 +590,7 @@ int kvm_s390_vcpu_store_status(struct kv
 	 * it into the save area
 	 */
 	save_fp_regs(vcpu-arch.guest_fpregs);
-	save_access_regs(vcpu-run-s.regs.acrs);
+	save_access_regs(vcpu-arch.guest_acrs);
 
 	if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
 			vcpu-arch.guest_fpregs.fprs, 128, prefix))


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-03-01 Thread Greg Kroah-Hartman
On Fri, Mar 01, 2013 at 10:22:23AM +0100, Jiri Slaby wrote:
 On 03/01/2013 08:50 AM, Christian Borntraeger wrote:
  On 28/02/13 23:26, Jiri Slaby wrote:
  On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
  3.0-stable review patch.  If anyone has any objections, please let me 
  know.
 
  --
 
  From: Christian Borntraeger borntrae...@de.ibm.com
 
  commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
 
  On store status we need to copy the current state of registers
  into a save area. Currently we might save stale versions:
  The sie state descriptor doesnt have fields for guest ACRS,FPRS,
  those registers are simply stored in the host registers. The host
  program must copy these away if needed. We do that in vcpu_put/load.
 
  If we now do a store status in KVM code between vcpu_put/load, the
  saved values are not up-to-date. Lets collect the ACRS/FPRS before
  saving them.
 
  This also fixes some strange problems with hotplug and virtio-ccw,
  since the low level machine check handler (on hotplug a machine check
  will happen) will revalidate all registers with the content of the
  save area.
 
  Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
  Signed-off-by: Gleb Natapov g...@redhat.com
  Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org
 
  ---
   arch/s390/kvm/kvm-s390.c |8 
   1 file changed, 8 insertions(+)
 
  --- a/arch/s390/kvm/kvm-s390.c
  +++ b/arch/s390/kvm/kvm-s390.c
  @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
} else
prefix = 0;
   
  + /*
  +  * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
  +  * copying in vcpu load/put. Lets update our copies before we save
  +  * it into the save area
  +  */
  + save_fp_regs(vcpu-arch.guest_fpregs);
  + save_access_regs(vcpu-run-s.regs.acrs);
 
  kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
  fails with:
  arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
  arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
  named 's'
 
  I believe the fix is just to remove save_access_regs, right?
  
  Before the sync reg changes, the ACRS were saved in the vcpu-arch.
  So the fix would look like 
  
  save_access_regs(vcpu-arch.guest_acrs);
 
 Fix attached.

Thanks, now applied.

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-28 Thread Christian Borntraeger
On 28/02/13 23:26, Jiri Slaby wrote:
> On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
>> 3.0-stable review patch.  If anyone has any objections, please let me know.
>>
>> --
>>
>> From: Christian Borntraeger 
>>
>> commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
>>
>> On store status we need to copy the current state of registers
>> into a save area. Currently we might save stale versions:
>> The sie state descriptor doesnt have fields for guest ACRS,FPRS,
>> those registers are simply stored in the host registers. The host
>> program must copy these away if needed. We do that in vcpu_put/load.
>>
>> If we now do a store status in KVM code between vcpu_put/load, the
>> saved values are not up-to-date. Lets collect the ACRS/FPRS before
>> saving them.
>>
>> This also fixes some strange problems with hotplug and virtio-ccw,
>> since the low level machine check handler (on hotplug a machine check
>> will happen) will revalidate all registers with the content of the
>> save area.
>>
>> Signed-off-by: Christian Borntraeger 
>> Signed-off-by: Gleb Natapov 
>> Signed-off-by: Greg Kroah-Hartman 
>>
>> ---
>>  arch/s390/kvm/kvm-s390.c |8 
>>  1 file changed, 8 insertions(+)
>>
>> --- a/arch/s390/kvm/kvm-s390.c
>> +++ b/arch/s390/kvm/kvm-s390.c
>> @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
>>  } else
>>  prefix = 0;
>>  
>> +/*
>> + * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
>> + * copying in vcpu load/put. Lets update our copies before we save
>> + * it into the save area
>> + */
>> +save_fp_regs(>arch.guest_fpregs);
>> +save_access_regs(vcpu->run->s.regs.acrs);
> 
> kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
> fails with:
> arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
> arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
> named 's'
> 
> I believe the fix is just to remove save_access_regs, right?

Before the sync reg changes, the ACRS were saved in the vcpu->arch.
So the fix would look like 

save_access_regs(vcpu->arch.guest_acrs);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-28 Thread Jiri Slaby
On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
> 3.0-stable review patch.  If anyone has any objections, please let me know.
> 
> --
> 
> From: Christian Borntraeger 
> 
> commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
> 
> On store status we need to copy the current state of registers
> into a save area. Currently we might save stale versions:
> The sie state descriptor doesnt have fields for guest ACRS,FPRS,
> those registers are simply stored in the host registers. The host
> program must copy these away if needed. We do that in vcpu_put/load.
> 
> If we now do a store status in KVM code between vcpu_put/load, the
> saved values are not up-to-date. Lets collect the ACRS/FPRS before
> saving them.
> 
> This also fixes some strange problems with hotplug and virtio-ccw,
> since the low level machine check handler (on hotplug a machine check
> will happen) will revalidate all registers with the content of the
> save area.
> 
> Signed-off-by: Christian Borntraeger 
> Signed-off-by: Gleb Natapov 
> Signed-off-by: Greg Kroah-Hartman 
> 
> ---
>  arch/s390/kvm/kvm-s390.c |8 
>  1 file changed, 8 insertions(+)
> 
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
>   } else
>   prefix = 0;
>  
> + /*
> +  * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
> +  * copying in vcpu load/put. Lets update our copies before we save
> +  * it into the save area
> +  */
> + save_fp_regs(>arch.guest_fpregs);
> + save_access_regs(vcpu->run->s.regs.acrs);

kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
fails with:
arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
named 's'

I believe the fix is just to remove save_access_regs, right?

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-28 Thread Jiri Slaby
On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
 3.0-stable review patch.  If anyone has any objections, please let me know.
 
 --
 
 From: Christian Borntraeger borntrae...@de.ibm.com
 
 commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.
 
 On store status we need to copy the current state of registers
 into a save area. Currently we might save stale versions:
 The sie state descriptor doesnt have fields for guest ACRS,FPRS,
 those registers are simply stored in the host registers. The host
 program must copy these away if needed. We do that in vcpu_put/load.
 
 If we now do a store status in KVM code between vcpu_put/load, the
 saved values are not up-to-date. Lets collect the ACRS/FPRS before
 saving them.
 
 This also fixes some strange problems with hotplug and virtio-ccw,
 since the low level machine check handler (on hotplug a machine check
 will happen) will revalidate all registers with the content of the
 save area.
 
 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
 Signed-off-by: Gleb Natapov g...@redhat.com
 Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org
 
 ---
  arch/s390/kvm/kvm-s390.c |8 
  1 file changed, 8 insertions(+)
 
 --- a/arch/s390/kvm/kvm-s390.c
 +++ b/arch/s390/kvm/kvm-s390.c
 @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
   } else
   prefix = 0;
  
 + /*
 +  * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
 +  * copying in vcpu load/put. Lets update our copies before we save
 +  * it into the save area
 +  */
 + save_fp_regs(vcpu-arch.guest_fpregs);
 + save_access_regs(vcpu-run-s.regs.acrs);

kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
fails with:
arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
named 's'

I believe the fix is just to remove save_access_regs, right?

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-28 Thread Christian Borntraeger
On 28/02/13 23:26, Jiri Slaby wrote:
 On 02/27/2013 12:57 AM, Greg Kroah-Hartman wrote:
 3.0-stable review patch.  If anyone has any objections, please let me know.

 --

 From: Christian Borntraeger borntrae...@de.ibm.com

 commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.

 On store status we need to copy the current state of registers
 into a save area. Currently we might save stale versions:
 The sie state descriptor doesnt have fields for guest ACRS,FPRS,
 those registers are simply stored in the host registers. The host
 program must copy these away if needed. We do that in vcpu_put/load.

 If we now do a store status in KVM code between vcpu_put/load, the
 saved values are not up-to-date. Lets collect the ACRS/FPRS before
 saving them.

 This also fixes some strange problems with hotplug and virtio-ccw,
 since the low level machine check handler (on hotplug a machine check
 will happen) will revalidate all registers with the content of the
 save area.

 Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
 Signed-off-by: Gleb Natapov g...@redhat.com
 Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org

 ---
  arch/s390/kvm/kvm-s390.c |8 
  1 file changed, 8 insertions(+)

 --- a/arch/s390/kvm/kvm-s390.c
 +++ b/arch/s390/kvm/kvm-s390.c
 @@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
  } else
  prefix = 0;
  
 +/*
 + * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
 + * copying in vcpu load/put. Lets update our copies before we save
 + * it into the save area
 + */
 +save_fp_regs(vcpu-arch.guest_fpregs);
 +save_access_regs(vcpu-run-s.regs.acrs);
 
 kvm_run structure does not have kvm_sync_regs in it in 3.0 yet. So this
 fails with:
 arch/s390/kvm/kvm-s390.c: In function 'kvm_s390_vcpu_store_status':
 arch/s390/kvm/kvm-s390.c:593: error: 'struct kvm_run' has no member
 named 's'
 
 I believe the fix is just to remove save_access_regs, right?

Before the sync reg changes, the ACRS were saved in the vcpu-arch.
So the fix would look like 

save_access_regs(vcpu-arch.guest_acrs);


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-26 Thread Greg Kroah-Hartman
3.0-stable review patch.  If anyone has any objections, please let me know.

--

From: Christian Borntraeger 

commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.

On store status we need to copy the current state of registers
into a save area. Currently we might save stale versions:
The sie state descriptor doesnt have fields for guest ACRS,FPRS,
those registers are simply stored in the host registers. The host
program must copy these away if needed. We do that in vcpu_put/load.

If we now do a store status in KVM code between vcpu_put/load, the
saved values are not up-to-date. Lets collect the ACRS/FPRS before
saving them.

This also fixes some strange problems with hotplug and virtio-ccw,
since the low level machine check handler (on hotplug a machine check
will happen) will revalidate all registers with the content of the
save area.

Signed-off-by: Christian Borntraeger 
Signed-off-by: Gleb Natapov 
Signed-off-by: Greg Kroah-Hartman 

---
 arch/s390/kvm/kvm-s390.c |8 
 1 file changed, 8 insertions(+)

--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
} else
prefix = 0;
 
+   /*
+* The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
+* copying in vcpu load/put. Lets update our copies before we save
+* it into the save area
+*/
+   save_fp_regs(>arch.guest_fpregs);
+   save_access_regs(vcpu->run->s.regs.acrs);
+
if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
vcpu->arch.guest_fpregs.fprs, 128, prefix))
return -EFAULT;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[ 17/53] s390/kvm: Fix store status for ACRS/FPRS

2013-02-26 Thread Greg Kroah-Hartman
3.0-stable review patch.  If anyone has any objections, please let me know.

--

From: Christian Borntraeger borntrae...@de.ibm.com

commit 15bc8d8457875f495c59d933b05770ba88d1eacb upstream.

On store status we need to copy the current state of registers
into a save area. Currently we might save stale versions:
The sie state descriptor doesnt have fields for guest ACRS,FPRS,
those registers are simply stored in the host registers. The host
program must copy these away if needed. We do that in vcpu_put/load.

If we now do a store status in KVM code between vcpu_put/load, the
saved values are not up-to-date. Lets collect the ACRS/FPRS before
saving them.

This also fixes some strange problems with hotplug and virtio-ccw,
since the low level machine check handler (on hotplug a machine check
will happen) will revalidate all registers with the content of the
save area.

Signed-off-by: Christian Borntraeger borntrae...@de.ibm.com
Signed-off-by: Gleb Natapov g...@redhat.com
Signed-off-by: Greg Kroah-Hartman gre...@linuxfoundation.org

---
 arch/s390/kvm/kvm-s390.c |8 
 1 file changed, 8 insertions(+)

--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -584,6 +584,14 @@ int kvm_s390_vcpu_store_status(struct kv
} else
prefix = 0;
 
+   /*
+* The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
+* copying in vcpu load/put. Lets update our copies before we save
+* it into the save area
+*/
+   save_fp_regs(vcpu-arch.guest_fpregs);
+   save_access_regs(vcpu-run-s.regs.acrs);
+
if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs),
vcpu-arch.guest_fpregs.fprs, 128, prefix))
return -EFAULT;


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/