[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 1 of 2] kvm: Move KVM mp_state accessors to i386
From: |
Hollis Blanchard |
Subject: |
[Qemu-devel] Re: [PATCH 1 of 2] kvm: Move KVM mp_state accessors to i386-specific code |
Date: |
Mon, 9 Nov 2009 14:23:12 -0800 |
This is the technique Anthony requested this morning, rather than
relocating mp_state. 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.
/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 <address@hidden> 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 <address@hidden>
>>
>> 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;
>
>
>