]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - kernel/rcu/rcu.h
Merge branches 'doc.2019.12.10a', 'exp.2019.12.09a', 'fixes.2020.01.24a', 'kfree_rcu...
[mirror_ubuntu-jammy-kernel.git] / kernel / rcu / rcu.h
index ab504fbc76cad73efa1381cdd3b8cf23b6a40fe8..05f936ed167a76acc484584ab8bd33b222c2fd49 100644 (file)
@@ -198,33 +198,6 @@ static inline void debug_rcu_head_unqueue(struct rcu_head *head)
 }
 #endif /* #else !CONFIG_DEBUG_OBJECTS_RCU_HEAD */
 
-void kfree(const void *);
-
-/*
- * Reclaim the specified callback, either by invoking it (non-lazy case)
- * or freeing it directly (lazy case).  Return true if lazy, false otherwise.
- */
-static inline bool __rcu_reclaim(const char *rn, struct rcu_head *head)
-{
-       rcu_callback_t f;
-       unsigned long offset = (unsigned long)head->func;
-
-       rcu_lock_acquire(&rcu_callback_map);
-       if (__is_kfree_rcu_offset(offset)) {
-               trace_rcu_invoke_kfree_callback(rn, head, offset);
-               kfree((void *)head - offset);
-               rcu_lock_release(&rcu_callback_map);
-               return true;
-       } else {
-               trace_rcu_invoke_callback(rn, head);
-               f = head->func;
-               WRITE_ONCE(head->func, (rcu_callback_t)0L);
-               f(head);
-               rcu_lock_release(&rcu_callback_map);
-               return false;
-       }
-}
-
 #ifdef CONFIG_RCU_STALL_COMMON
 
 extern int rcu_cpu_stall_ftrace_dump;
@@ -281,7 +254,7 @@ void rcu_test_sync_prims(void);
  */
 extern void resched_cpu(int cpu);
 
-#if defined(SRCU) || !defined(TINY_RCU)
+#if defined(CONFIG_SRCU) || !defined(CONFIG_TINY_RCU)
 
 #include <linux/rcu_node_tree.h>
 
@@ -418,7 +391,7 @@ do {                                                                        \
 #define raw_lockdep_assert_held_rcu_node(p)                            \
        lockdep_assert_held(&ACCESS_PRIVATE(p, lock))
 
-#endif /* #if defined(SRCU) || !defined(TINY_RCU) */
+#endif /* #if defined(CONFIG_SRCU) || !defined(CONFIG_TINY_RCU) */
 
 #ifdef CONFIG_SRCU
 void srcu_init(void);
@@ -454,7 +427,7 @@ enum rcutorture_type {
        INVALID_RCU_FLAVOR
 };
 
-#if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU)
+#if defined(CONFIG_TREE_RCU)
 void rcutorture_get_gp_data(enum rcutorture_type test_type, int *flags,
                            unsigned long *gp_seq);
 void do_trace_rcu_torture_read(const char *rcutorturename,