[PATCH 6/9] rcu-tasks: Validate callback arguments

From: Kunwu Chan

Date: Fri Oct 23 2026 - 06:19:55 EST


Check callback-head alignment and reject NULL callback
functions in the generic RCU Tasks callback registration path.

Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
---
kernel/rcu/tasks.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index fcac7361ec51..5d7f234795b4 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -351,6 +351,13 @@ static void call_rcu_tasks_generic(struct rcu_head *rhp, rcu_callback_t func,
bool needwake;
struct rcu_tasks_percpu *rtpcp;

+ /* Misaligned rcu_head! */
+ WARN_ON_ONCE((unsigned long)rhp & (sizeof(void *) - 1));
+
+ /* Avoid NULL dereference if callback is NULL. */
+ if (WARN_ON_ONCE(!func))
+ return;
+
rhp->next = NULL;
rhp->func = func;
local_irq_save(flags);
--
2.43.0