eventfd: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
PATCH 1/1 eventfd: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
The uses of "rcu_assign_pointer()" are NULLing out the pointers. According to RCU_INIT_POINTER()'s block comment:
"1. This use of RCU_INIT_POINTER() is NULLing out the pointer"
it is better to use it instead of rcu_assign_pointer() because it has a smaller overhead.
The following Coccinelle semantic patch was used:
@@
@@
- rcu_assign_pointer
+ RCU_INIT_POINTER
(..., NULL)
--- virt/kvm/eventfd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
virt/kvm/eventfd.c +3 -3
@@ -278,7 +278,7 @@ static void irqfd_update(struct kvm *kvm, struct _irqfd *irqfd,struct kvm_kernel_irq_routing_entry *e;if (irqfd->gsi >= irq_rt->nr_rt_entries) { -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL );return ; }
@@ -287,7 +287,7 @@ static void irqfd_update(struct kvm *kvm, struct _irqfd *irqfd,if (e->type ==KVM_IRQ_ROUTING_MSI )rcu_assign_pointer (irqfd->irq_entry, e);else -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL ); } }
@@ -473,7 +473,7 @@ kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args)* It is paired with synchronize_srcu done by caller * of that function. */ -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL );irqfd_deactivate (irqfd); } }
Signature · 1 line
1.9.1
Paolo Bonzini
maintainerIl 18/08/2014 17:01, Andreea-Cristina Bernat ha scritto:
Quoted 43 lines
The uses of "
rcu_assign_pointer()" are NULLing out the pointers. According to RCU_INIT_POINTER()'s block comment:
"1. This use ofRCU_INIT_POINTER()is NULLing out the pointer"
it is better to use it instead ofrcu_assign_pointer()because it has a smaller overhead.The following Coccinelle semantic patch was used:
@@
@@-
rcu_assign_pointer
+RCU_INIT_POINTER
(..., NULL)Signed-off-by Andreea-Cristina Bernat <[email protected]>--- virt/kvm/eventfd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)virt/kvm/eventfd.c +2
-2@@ -278,7 +278,7 @@ static void irqfd_update(struct kvm *kvm, struct _irqfd *irqfd,struct kvm_kernel_irq_routing_entry *e;if (irqfd->gsi >= irq_rt->nr_rt_entries) { -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL );return ; }@@ -287,7 +287,7 @@ static void irqfd_update(struct kvm *kvm, struct _irqfd *irqfd,if (e->type ==KVM_IRQ_ROUTING_MSI )rcu_assign_pointer (irqfd->irq_entry, e);else -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL ); } }
virt/kvm/eventfd.c kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args) · line 479
Quoted 8 lines
virt/kvm/eventfd.c +1
-1@@ -473,7 +473,7 @@ kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args)* It is paired with synchronize_srcu done by caller * of that function. */ -rcu_assign_pointer (irqfd->irq_entry,NULL ); +RCU_INIT_POINTER (irqfd->irq_entry,NULL );irqfd_deactivate (irqfd); } }
Hi, this patch actually had been submitted already last March. It slipped through the cracks. I'm now applying both of Monam Agarwal's RCU_INIT_POINTER patches. Sorry. :)
Thanks,
Paolo