Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libfc: 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)

Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com>
Acked-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>

authored by

Andreea-Cristina Bernat and committed by
Christoph Hellwig
f4303d8f b8d23dc6

+2 -2
+2 -2
drivers/scsi/libfc/fc_libfc.c
··· 296 296 BUG_ON(type >= FC_FC4_PROV_SIZE); 297 297 mutex_lock(&fc_prov_mutex); 298 298 if (prov->recv) 299 - rcu_assign_pointer(fc_passive_prov[type], NULL); 299 + RCU_INIT_POINTER(fc_passive_prov[type], NULL); 300 300 else 301 - rcu_assign_pointer(fc_active_prov[type], NULL); 301 + RCU_INIT_POINTER(fc_active_prov[type], NULL); 302 302 mutex_unlock(&fc_prov_mutex); 303 303 synchronize_rcu(); 304 304 }