aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/slab.h
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2023-04-17 19:04:50 +0000
committerVlastimil Babka <vbabka@suse.cz>2023-06-08 09:13:36 +0200
commit1143c9d9d7602f20ba7bb3cef0d07b10f23cbef7 (patch)
tree91706617b5296385d29a1c3f2511924c8bf9788c /include/linux/slab.h
parent9ca73f2645706230249c4ec2a2b0cab9515987c8 (diff)
downloadlinux-1143c9d9d7602f20ba7bb3cef0d07b10f23cbef7.tar.gz
mm/slab: break up RCU readers on SLAB_TYPESAFE_BY_RCU example code
The SLAB_TYPESAFE_BY_RCU example code snippet uses a single RCU read-side critical section for retries. 'Documentation/RCU/rculist_nulls.rst' has similar example code snippet, and commit da82af04352b ("doc: Update and wordsmith rculist_nulls.rst") broke it up. Apply the change to SLAB_TYPESAFE_BY_RCU example code snippet, too. Signed-off-by: SeongJae Park <sj@kernel.org> Reviewed-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'include/linux/slab.h')
-rw-r--r--include/linux/slab.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 5eeedbfffcd29..c6bc05765bdb2 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -53,16 +53,18 @@
* stays valid, the trick to using this is relying on an independent
* object validation pass. Something like:
*
+ * begin:
* rcu_read_lock();
- * again:
* obj = lockless_lookup(key);
* if (obj) {
* if (!try_get_ref(obj)) // might fail for free objects
- * goto again;
+ * rcu_read_unlock();
+ * goto begin;
*
* if (obj->key != key) { // not the object we expected
* put_ref(obj);
- * goto again;
+ * rcu_read_unlock();
+ * goto begin;
* }
* }
* rcu_read_unlock();