Re: [PATCH v2 3/6] KVM: introduce kvm_for_each_memslot macro

From: Avi Kivity
Date: Mon Nov 21 2011 - 03:34:19 EST


On 11/21/2011 02:54 AM, Takuya Yoshikawa wrote:
> (2011/11/20 20:21), Avi Kivity wrote:
>> On 11/18/2011 11:18 AM, Xiao Guangrong wrote:
>>> index bb8728e..10524c0 100644
>>> --- a/include/linux/kvm_host.h
>>> +++ b/include/linux/kvm_host.h
>>> @@ -307,6 +307,10 @@ static inline struct kvm_vcpu
>>> *kvm_get_vcpu(struct kvm *kvm, int i)
>>> (vcpup = kvm_get_vcpu(kvm, idx)) != NULL; \
>>> idx++)
>>>
>>> +#define kvm_for_each_memslot(slots, memslot, i) \
>>> + for (i = 0; i< (slots)->nmemslots&& \
>>> + ({ memslot =&(slots)->memslots[i]; 1; }); i++)
>>> +
>>>
>>
>> Statement expression not needed, you can use the comma operator:
>>
>> i< (slots)->nmemslots&& (memslot = @(slots)->memslots[i], true)
>>
>> or even
>>
>> memslot =&(slots)->memslots[i], i< (slots)->nmemslots
>>
>> or just kill i and make memslot the loop variable.
>>
>
> Do you have any preference for the arguments ordering?
>
> I think placing the target one, memslot in this case, first is
> conventional in
> the kernel code, except when we want to place "kvm" or something like
> that.
>
> But in kvm code, there seems to be some difference.

You mean for the macro? Yes, making memslot the first argument is a
good idea. Any difference in kvm code is not intentional.


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/