diff options
author | Bart Van Assche <bvanassche@acm.org> | 2024-09-12 15:39:55 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-09-13 07:36:02 +0200 |
commit | e837d833a13461c10f265a65ce6612e6dd43e76f (patch) | |
tree | 30aabfca8acbe44a18ef0a6cb71e71022843d93c | |
parent | 96f8052822e03c6f49b6b28fc1d6e5e0522ecbb9 (diff) | |
download | lwn-e837d833a13461c10f265a65ce6612e6dd43e76f.tar.gz lwn-e837d833a13461c10f265a65ce6612e6dd43e76f.zip |
locking/mutex: Introduce mutex_init_with_key()
The following pattern occurs 5 times in kernel drivers:
lockdep_register_key(key);
__mutex_init(mutex, name, key);
In several cases the 'name' argument matches #mutex. Hence, introduce
the mutex_init_with_key() macro. This macro derives the 'name' argument
from the 'mutex' argument.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240912223956.3554086-3-bvanassche@acm.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | include/linux/mutex.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/mutex.h b/include/linux/mutex.h index ef617089db19..2bf91b57591b 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -64,6 +64,17 @@ do { \ __mutex_init((mutex), #mutex, &__key); \ } while (0) +/** + * mutex_init_with_key - initialize a mutex with a given lockdep key + * @mutex: the mutex to be initialized + * @key: the lockdep key to be associated with the mutex + * + * Initialize the mutex to the unlocked state. + * + * It is not allowed to initialize an already locked mutex. + */ +#define mutex_init_with_key(mutex, key) __mutex_init((mutex), #mutex, (key)) + #ifndef CONFIG_PREEMPT_RT #define __MUTEX_INITIALIZER(lockname) \ { .owner = ATOMIC_LONG_INIT(0) \ |