> +static inline void debug_rcu_head_callback(struct rcu_head *rhp)
> +{
> + if (unlikely(!rhp->func))
> + mem_dump_obj(rhp);
> +}
> +
The mm/util.c definition of mem_dump_object() says:
* This function uses pr_cont(), so that the caller is expected to have
* printed out whatever preamble is appropriate.
so this needs to call pr_alert() or pr_err() before that to explain what
is being printed (with no \n), like these:
kernel/rcu/rcutorture.c: pr_alert("mem_dump_obj(%px):", &rhp);
kernel/rcu/rcutorture.c: mem_dump_obj(&rhp);
...
kernel/rcu/tree.c: pr_err("%s(): Double-freed CB %p->%pS()!!! ", __func__, head, head->func);
kernel/rcu/tree.c: mem_dump_obj(head);