Re: [PATCH 08/28] kvm tools: Fix KVM_RUN exit code check

Matt Evans
2011-12-08T03:03:01Z

Hi Sasha,

On 06/12/11 19:22, Sasha Levin wrote:
> If KVM_RUN can actually return anything besides 0 or -1 it may be also
> worthwhile to update Documentation/virtual/kvm/api.txt .
>
> What are the cases where it happens?

It sounds like Alex is considering KVM PPC's return value in this case (and
updating api.txt if appropriate) -- what say you on this patch? It actually
brings kvmtool's KVM_RUN return val check in line with QEMU's (also "< 0") and
nothing PPC will run without it, currently. (I'm about to repost a new series,
will include it for these reasons, until I hear more complaint ;) )

Cheers,

Matt

>
> On Tue, 2011-12-06 at 14:39 +1100, Matt Evans wrote:
>> kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures
>> may return positive values in non-error cases, whereas real errors are always
>> negative return values. Check for those instead.
>>
>> Signed-off-by: Matt Evans <matt@ozlabs.org>
>> ---
>> tools/kvm/kvm-cpu.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c
>> index 9bc0796..884a89f 100644
>> --- a/tools/kvm/kvm-cpu.c
>> +++ b/tools/kvm/kvm-cpu.c
>> @@ -30,7 +30,7 @@ void kvm_cpu__run(struct kvm_cpu *vcpu)
>> int err;
>>
>> err = ioctl(vcpu->vcpu_fd, KVM_RUN, 0);
>> - if (err && (errno != EINTR && errno != EAGAIN))
>> + if (err < 0 && (errno != EINTR && errno != EAGAIN))
>> die_perror("KVM_RUN failed");
>> }
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>