Skip to contentSkip to conversation

genhd: Replace rcu_assign_pointer() with RCU_INIT_POINTER()

PATCH New Andreea-Cristina Bernat 1 participant 1 message Aug 22, 2014 Block layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 genhd: Replace rcu_assign_pointer() with RCU_INIT_POINTER()

The use of "rcu_assign_pointer()" is NULLing out the pointer. 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)

---
 block/genhd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
block/genhd.c +1 -1
index 791f419..3aec057 100644
@@ -1045,7 +1045,7 @@ static void disk_replace_part_tbl(struct gendisk *disk,
 	rcu_assign_pointer(disk->part_tbl, new_ptbl);
 
 	if (old_ptbl) {
-		rcu_assign_pointer(old_ptbl->last_lookup, NULL);
+		RCU_INIT_POINTER(old_ptbl->last_lookup, NULL);
 		kfree_rcu(old_ptbl, rcu_head);
 	}
 }
Signature · 1 line
1.9.1