Subject: Re: next June 10: S390 build failure [arch/s390/kvm/kvm.ko]

From: Christian Borntraeger <[email-masked]>
Date: Sat, 12 Jun 2010 08:54:13 +0200

Am Donnerstag 10 Juni 2010, 15:48:48 schrieb Martin Schwidefsky:
> On Thu, 10 Jun 2010 18:08:15 +0530
> Sachin Sant <[email-masked]> wrote:
> 
> > Today's next fails to build on a s390 box with
> > 
> > ERROR: "__kvm_s390_vcpu_store_status" [arch/s390/kvm/kvm.ko] undefined!
> > 
> > Yesterday's next was good.
> 
> That is caused by git commit fbc5eec58e652339e9df1332cd5e10e8d8250aaf
> which fails to take git commit 5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32
> into account. There is a second caller of __kvm_s390_vcpu_store_status
> in arch/s390/kvm/intercept.c. As far as I understand the code you could
> just drop the 'static' from kvm_s390_vcpu_store_status and call it from
> handle_stop instead of the old __kvm_s390_vcpu_store_status.
> 
> Carsten, Christian: could one of you have a look please?

that patch should do the trick. Avi can you add that to kvm.git?

kvm-s390: Fix build failure 

This patch fixes 
ERROR: "__kvm_s390_vcpu_store_status" [arch/s390/kvm/kvm.ko] undefined!

triggered by
commit 3268c56840dcee78c3e928336550f4e1861504c4 (kvm.git)
Author: Avi Kivity <[email-masked]>
Date:   Thu May 13 12:21:46 2010 +0300
    KVM: s390: Centrally lock arch specific vcpu ioctls
    
Reported-by: Sachin Sant <[email-masked]>
Signed-off-by: Christian Borntraeger <[email-masked]>

---
 arch/s390/kvm/intercept.c |    2 +-
 arch/s390/kvm/kvm-s390.c  |    2 +-
 arch/s390/kvm/kvm-s390.h  |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Index: kvm/arch/s390/kvm/intercept.c
===================================================================
--- kvm.orig/arch/s390/kvm/intercept.c
+++ kvm/arch/s390/kvm/intercept.c
@@ -135,7 +135,7 @@ static int handle_stop(struct kvm_vcpu *
 	spin_lock_bh(&vcpu->arch.local_int.lock);
 	if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) {
 		vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP;
-		rc = __kvm_s390_vcpu_store_status(vcpu,
+		rc = kvm_s390_vcpu_store_status(vcpu,
 						  KVM_S390_STORE_STATUS_NOADDR);
 		if (rc >= 0)
 			rc = -EOPNOTSUPP;
Index: kvm/arch/s390/kvm/kvm-s390.c
===================================================================
--- kvm.orig/arch/s390/kvm/kvm-s390.c
+++ kvm/arch/s390/kvm/kvm-s390.c
@@ -569,7 +569,7 @@ static int __guestcopy(struct kvm_vcpu *
  * KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
  * KVM_S390_STORE_STATUS_PREFIXED: -> prefix
  */
-static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
+int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
 {
 	const unsigned char archmode = 1;
 	int prefix;
Index: kvm/arch/s390/kvm/kvm-s390.h
===================================================================
--- kvm.orig/arch/s390/kvm/kvm-s390.h
+++ kvm/arch/s390/kvm/kvm-s390.h
@@ -92,7 +92,7 @@ int kvm_s390_handle_b2(struct kvm_vcpu *
 int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu);
 
 /* implemented in kvm-s390.c */
-int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu,
+int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu,
 				 unsigned long addr);
 /* implemented in diag.c */
 int kvm_s390_handle_diag(struct kvm_vcpu *vcpu);