Jörg Sommer hat am Sat 25. Feb, 15:51 (+0100) geschrieben: > Jörg Sommer hat am Tue 21. Feb, 09:32 (+0100) geschrieben: > > Alexander Graf hat am Mon 20. Feb, 22:27 (+0100) geschrieben: > > > On 20.02.2012, at 18:38, Jörg Sommer wrote: > > > > Alexander Graf hat am Tue 22. Nov, 22:29 (+0100) geschrieben: > > > >> On 22.11.2011, at 21:04, Jörg Sommer wrote: > > > >>> [1] »kernel BUG at include/linux/kvm_host.h:603!« > > > >>> http://www.mail-archive.com/kvm@xxxxxxxxxxxxxxx/msg61433.html > > > >> > > > >> This is unfortunately still there. It's because of preemption being > > > >> enabled. Please just use CONFIG_PREEMPT_NONE for the time being > > > > > > > > This doesn't help. I've build with CONFIG_PREEMPT_NONE, but I'm getting > > > > this Oops, when I start qemu. > > > > > > Could you please try git://git.kernel.org/pub/scm/virt/kvm/kvm.git? I > > > fixed a bunch of things with preemption since then and it definitely > > > worked for me. If it still fails in that tree, I can try again to > > > reproduce it :). > > > > This kernel (e9badff4b38a3f8b2c20aa8a30db210caf85a497) fails to build: > > > > CC [M] arch/powerpc/kvm/book3s_pr.o > > arch/powerpc/kvm/book3s_pr.c: In function ‘kvm_vcpu_ioctl_get_one_reg’: > > arch/powerpc/kvm/book3s_pr.c:883:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:80: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:284: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:327: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:459: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:748: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:1112: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:1476: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > > arch/powerpc/kvm/book3s_pr.c:883:1867: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > @@ -652,6 +653,11 @@ static int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, > int r = -EINVAL; > > switch (reg->id) { > +#ifdef CONFIG_PPC_BOOK3S > + case KVM_REG_PPC_HIOR: > + r = put_user(to_book3s(vcpu)->hior, (u64 __user *)reg->addr); > + break; > +#endif > default: > break; > } Is this the right fix for this code? diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c index ee222ec..a5d061c 100644 --- a/arch/powerpc/kvm/book3s_pr.c +++ b/arch/powerpc/kvm/book3s_pr.c @@ -880,7 +880,7 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) switch (reg->id) { case KVM_REG_PPC_HIOR: - r = put_user(to_book3s(vcpu)->hior, (u64 __user *)reg->addr); + r = put_user(to_book3s(vcpu)->hior, (u64 __user *)®->addr); break; default: break; @@ -895,7 +895,7 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg) switch (reg->id) { case KVM_REG_PPC_HIOR: - r = get_user(to_book3s(vcpu)->hior, (u64 __user *)reg->addr); + r = get_user(to_book3s(vcpu)->hior, (u64 __user *)®->addr); if (!r) to_book3s(vcpu)->hior_explicit = true; break; Bye, Jörg. -- If Java had true garbage collection, most programs would delete themselves upon execution
Attachment:
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP