On 25 September 2026 14:39:04 BST, Arnd Bergmann <[email protected]> wrote:
>From: Arnd Bergmann <[email protected]>
>
>The added call to rt_mutex_owner() makes this fail to build in
>some configurations:
>
>In file included from kernel/rcu/tree.c:5121:
>kernel/rcu/tree_stall.h:333:8: error: call to undeclared function
>'rt_mutex_owner'; ISO C99 and later do not support implicit function
>declarations [-Wimplicit-function-declaration]
>  333 |                         if (rt_mutex_owner(&rnp->boost_mtx.rtmutex) == 
> t)
>      |                             ^
>kernel/rcu/tree_stall.h:333:48: error: comparison between pointer and
>integer ('int' and 'struct task_struct *')
>[-Werror,-Wpointer-integer-compare]
>  333 |                         if (rt_mutex_owner(&rnp->boost_mtx.rtmutex) == 
> t)
>      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  
> ~
>In file included from kernel/rcu/tree.c:5124:
>In file included from kernel/rcu/tree_plugin.h:14:
>kernel/rcu/../locking/rtmutex_common.h:231:35: error: conflicting types
>for 'rt_mutex_owner'
>  231 | static inline struct task_struct *rt_mutex_owner(struct rt_mutex_base 
> *lock)
>      |                                   ^
>kernel/rcu/tree_stall.h:333:8: note: previous implicit declaration is here
>  333 |                         if (rt_mutex_owner(&rnp->boost_mtx.rtmutex) == 
> t)
>      |                             ^
>
>There are already a couple of inclusions of "../locking/rtmutex_common.h",
>so assume this is safe to do here.
>
>Fixes: 1eccf02fb8d5 ("rcu: Add running and boosted indications to RCU task 
>stall dump")
>Signed-off-by: Arnd Bergmann <[email protected]>

Looks "ok" 

Reviewed-by: Bradley Morgan <[email protected]>

Perhaps Paul could suggest another alternative M

>---
>I wonder if it would be better to either move the rt_mutex_owner()
>definition into a global header like include/linux/rtmutex.h, or to
>move the code out of tree_stall.h into a .c file, as this feels like a
>layering violation.
>---
> kernel/rcu/tree_stall.h | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
>index 5dded1e89197..803a56af3259 100644
>--- a/kernel/rcu/tree_stall.h
>+++ b/kernel/rcu/tree_stall.h
>@@ -12,6 +12,7 @@
> #include <linux/rcu_notifier.h>
> #include <linux/smp.h>
> #include <linux/rtmutex.h>
>+#include "../locking/rtmutex_common.h"
> 
> //////////////////////////////////////////////////////////////////////////////
> //
>

--- Thanks!
"I'm not a very positive person" - Linus torvalds

Reply via email to