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

From: Takuya Yoshikawa
Date: Sun Nov 20 2011 - 20:15:20 EST


(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.

Takuya
--
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/