On 11/18/2010 01:10 PM, Michael S. Tsirkin wrote:
> I guess I should create an empty Documentation/kvm/locking.txt and > force everyone else to update it. Comments near the relevant fields not better?
Not an either/or. You can't understand the system from random source comments.
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index a055742..d13ced3 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -16,6 +16,7 @@ #include<linux/mm.h> #include<linux/preempt.h> #include<linux/msi.h> +#include<linux/rcupdate.h> #include<asm/signal.h> #include<linux/kvm.h> @@ -206,6 +207,8 @@ struct kvm { struct mutex irq_lock; #ifdef CONFIG_HAVE_KVM_IRQCHIP + /* Update side is protected by irq_lock and, + * if configured, irqfds.lock. */
/* * kernel style comment * here and elsewhere */
struct kvm_irq_routing_table __rcu *irq_routing; struct hlist_head mask_notifier_list; struct hlist_head irq_ack_notifier_list; @@ -462,6 +465,8 @@ void kvm_get_intr_delivery_bitmask(struct kvm_ioapic *ioapic, unsigned long *deliver_bitmask); #endif int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level); +int kvm_set_msi(struct kvm_kernel_irq_routing_entry *irq_entry, struct kvm *kvm, + int irq_source_id, int level);
No point in the level argument for an msi specific function.
#else @@ -614,6 +620,12 @@ static inline int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags) } static inline void kvm_irqfd_release(struct kvm *kvm) {}
blank line
+static inline void kvm_irq_routing_update(struct kvm *kvm, + struct kvm_irq_routing_table *irq_rt) +{ + rcu_assign_pointer(kvm->irq_routing, irq_rt); +} + static inline int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) { return -ENOSYS;
Apart from these minor issues, looks good. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html