Hollis Blanchard wrote: > This is the technique Anthony requested this morning, rather than > relocating mp_state. Then let's move it. There is not that much code to share anyway. > To be honest, I don't care which way it's fixed; > this is at least the 3rd patch to solve this seemingly trivial > problem. That's indeed unfortunate, but I think to remember that not all of these attempts were clean. Jan > > /home/hollisb/source/qemu-fresh.hg/kvm-all.c: In function 'kvm_put_mp_state': > /home/hollisb/source/qemu-fresh.hg/kvm-all.c:212: error: 'struct > CPUPPCState' has no member named 'mp_state' > > -Hollis > > On Mon, Nov 9, 2009 at 2:12 PM, Jan Kiszka <jan.kiszka@xxxxxx> wrote: >> Hollis Blanchard wrote: >>> Unbreaks PowerPC and S390 KVM builds. >> What breaks precisely? >> >> Note that KVM_GET/SET_MP_STATE are generic IOCTLs and supposed to be >> shared with ia64 - one day. We could still move things back then, but >> maybe we can handle the build issues already in place, specifically as >> qemu-kvm is carrying this in generic code since ages. >> >> Jan >> >>> Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> >>> >>> diff --git a/kvm-all.c b/kvm-all.c >>> --- a/kvm-all.c >>> +++ b/kvm-all.c >>> @@ -207,26 +207,6 @@ err: >>> return ret; >>> } >>> >>> -int kvm_put_mp_state(CPUState *env) >>> -{ >>> - struct kvm_mp_state mp_state = { .mp_state = env->mp_state }; >>> - >>> - return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); >>> -} >>> - >>> -int kvm_get_mp_state(CPUState *env) >>> -{ >>> - struct kvm_mp_state mp_state; >>> - int ret; >>> - >>> - ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); >>> - if (ret < 0) { >>> - return ret; >>> - } >>> - env->mp_state = mp_state.mp_state; >>> - return 0; >>> -} >>> - >>> /* >>> * dirty pages logging control >>> */ >>> diff --git a/kvm.h b/kvm.h >>> --- a/kvm.h >>> +++ b/kvm.h >>> @@ -74,9 +74,6 @@ int kvm_vm_ioctl(KVMState *s, int type, >>> >>> int kvm_vcpu_ioctl(CPUState *env, int type, ...); >>> >>> -int kvm_get_mp_state(CPUState *env); >>> -int kvm_put_mp_state(CPUState *env); >>> - >>> /* Arch specific hooks */ >>> >>> int kvm_arch_post_run(CPUState *env, struct kvm_run *run); >>> diff --git a/target-i386/kvm.c b/target-i386/kvm.c >>> --- a/target-i386/kvm.c >>> +++ b/target-i386/kvm.c >>> @@ -659,6 +659,26 @@ static int kvm_get_msrs(CPUState *env) >>> return 0; >>> } >>> >>> +static int kvm_put_mp_state(CPUState *env) >>> +{ >>> + struct kvm_mp_state mp_state = { .mp_state = env->mp_state }; >>> + >>> + return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); >>> +} >>> + >>> +static int kvm_get_mp_state(CPUState *env) >>> +{ >>> + struct kvm_mp_state mp_state; >>> + int ret; >>> + >>> + ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); >>> + if (ret < 0) { >>> + return ret; >>> + } >>> + env->mp_state = mp_state.mp_state; >>> + return 0; >>> +} >>> + >>> int kvm_arch_put_registers(CPUState *env) >>> { >>> int ret; >> >>
Attachment:
signature.asc
Description: OpenPGP digital signature