On 7/30/2019 1:33 PM, Peter Zijlstra wrote:
On Tue, Jul 30, 2019 at 01:23:13PM +0530, Mukesh Ojha wrote:
On 7/29/2019 4:37 PM, Peter Zijlstra wrote:
On Mon, Jul 29, 2019 at 04:22:58PM +0530, Mukesh Ojha wrote:
Let's use the mutex flag macro(which got moved from mutex.c
to linux/mutex.h in the last patch) instead of hard code
value which was used in __mutex_owner().

Signed-off-by: Mukesh Ojha <[email protected]>
---
   include/linux/mutex.h | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/mutex.h b/include/linux/mutex.h
index 79b28be..c3833ba 100644
--- a/include/linux/mutex.h
+++ b/include/linux/mutex.h
@@ -87,7 +87,7 @@ struct mutex {
    */
   static inline struct task_struct *__mutex_owner(struct mutex *lock)
   {
-       return (struct task_struct *)(atomic_long_read(&lock->owner) & ~0x07);
+       return (struct task_struct *)(atomic_long_read(&lock->owner) & 
~MUTEX_FLAGS);
   }
I would _much_ rather move __mutex_owner() out of line, you're exposing
far too much stuff.
if i understand you correctly, you want me to move __mutex_owner() to
mutex.c
__mutex_owner() is used in mutex_is_locked() and mutex_trylock_recursive
inside linux/mutex.h.

Shall i move them as well ?
Yes, then you can make __mutex_owner() static.

To make it static , i have to export mutex_is_locked() after moving it inside mutex.c, so that other module can use it.

Also are we thinking of removing
static inline /* __deprecated */ __must_check enum mutex_trylock_recursive_enum
mutex_trylock_recursive(struct mutex *lock)

inside linux/mutex.h in future ?

As i see it is used at one or two places and there is a check inside checkpatch guarding its further use .

Thanks,
Mukesh



Thanks!

Reply via email to