* [patch] locking, rwsem: Add missing __init_rwsem() for PREEMPT_RT
@ 2021-08-31 6:38 Mike Galbraith
2021-08-31 9:54 ` [tip: locking/urgent] locking/rwsem: " tip-bot2 for Mike Galbraith
2021-09-02 20:14 ` tip-bot2 for Mike Galbraith
0 siblings, 2 replies; 4+ messages in thread
From: Mike Galbraith @ 2021-08-31 6:38 UTC (permalink / raw)
To: LKML; +Cc: Thomas Gleixner
730633f0b7f95 became the first direct caller of __init_rwsem() vs the
usual init_rwsem(), exposing PREEMPT_RT's lack thereof. Add it.
Signed-off-by: Mike Galbraith <efault@gmx.de>
---
include/linux/rwsem.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -152,12 +152,18 @@ static inline void __rwsem_init(struct
}
#endif
+static inline void __init_rwsem(struct rw_semaphore *sem, const char *name,
+ struct lock_class_key *key)
+{
+ init_rwbase_rt(&(sem)->rwbase);
+ __rwsem_init(sem, name, key);
+}
+
#define init_rwsem(sem) \
do { \
static struct lock_class_key __key; \
\
- init_rwbase_rt(&(sem)->rwbase); \
- __rwsem_init((sem), #sem, &__key); \
+ __init_rwsem((sem), #sem, &__key); \
} while (0)
static __always_inline int rwsem_is_locked(struct rw_semaphore *sem)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tip: locking/urgent] locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
2021-08-31 6:38 [patch] locking, rwsem: Add missing __init_rwsem() for PREEMPT_RT Mike Galbraith
@ 2021-08-31 9:54 ` tip-bot2 for Mike Galbraith
2021-08-31 23:02 ` Mike Galbraith
2021-09-02 20:14 ` tip-bot2 for Mike Galbraith
1 sibling, 1 reply; 4+ messages in thread
From: tip-bot2 for Mike Galbraith @ 2021-08-31 9:54 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Mike Galbraith, Thomas Gleixner, x86, linux-kernel
The following commit has been merged into the locking/urgent branch of tip:
Commit-ID: 453624fa68444c9b93addb4325c9db59b6a43e21
Gitweb: https://git.kernel.org/tip/453624fa68444c9b93addb4325c9db59b6a43e21
Author: Mike Galbraith <efault@gmx.de>
AuthorDate: Tue, 31 Aug 2021 08:38:19 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 31 Aug 2021 11:53:12 +02:00
locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
730633f0b7f95 became the first direct caller of __init_rwsem() vs the
usual init_rwsem(), exposing PREEMPT_RT's lack thereof. Add it.
[ tglx: Move it out of line ]
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/50a936b7d8f12277d6ec7ed2ef0421a381056909.camel@gmx.de
---
include/linux/rwsem.h | 12 ++----------
kernel/locking/rwsem.c | 8 +++++---
2 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 426e98e..352c612 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -142,22 +142,14 @@ struct rw_semaphore {
#define DECLARE_RWSEM(lockname) \
struct rw_semaphore lockname = __RWSEM_INITIALIZER(lockname)
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-extern void __rwsem_init(struct rw_semaphore *rwsem, const char *name,
+extern void __init_rwsem(struct rw_semaphore *rwsem, const char *name,
struct lock_class_key *key);
-#else
-static inline void __rwsem_init(struct rw_semaphore *rwsem, const char *name,
- struct lock_class_key *key)
-{
-}
-#endif
#define init_rwsem(sem) \
do { \
static struct lock_class_key __key; \
\
- init_rwbase_rt(&(sem)->rwbase); \
- __rwsem_init((sem), #sem, &__key); \
+ __init_rwsem((sem), #sem, &__key); \
} while (0)
static __always_inline int rwsem_is_locked(struct rw_semaphore *sem)
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index 9215b4d..f18bbe8 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -1376,15 +1376,17 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
#include "rwbase_rt.c"
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
void __rwsem_init(struct rw_semaphore *sem, const char *name,
struct lock_class_key *key)
{
+ init_rwbase_rt(&(sem)->rwbase);
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
lockdep_init_map_wait(&sem->dep_map, name, key, 0, LD_WAIT_SLEEP);
-}
-EXPORT_SYMBOL(__rwsem_init);
#endif
+}
+EXPORT_SYMBOL(__init_rwsem);
static inline void __down_read(struct rw_semaphore *sem)
{
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [tip: locking/urgent] locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
2021-08-31 9:54 ` [tip: locking/urgent] locking/rwsem: " tip-bot2 for Mike Galbraith
@ 2021-08-31 23:02 ` Mike Galbraith
0 siblings, 0 replies; 4+ messages in thread
From: Mike Galbraith @ 2021-08-31 23:02 UTC (permalink / raw)
To: linux-kernel, linux-tip-commits; +Cc: Thomas Gleixner, x86
On Tue, 2021-08-31 at 09:54 +0000, tip-bot2 for Mike Galbraith wrote:
> --- a/kernel/locking/rwsem.c
> +++ b/kernel/locking/rwsem.c
> @@ -1376,15 +1376,17 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
>
> #include "rwbase_rt.c"
>
> -#ifdef CONFIG_DEBUG_LOCK_ALLOC
> void __rwsem_init(struct rw_semaphore *sem, const char *name,
^^^^^^^^^^^^ this line dodged your key tapping.
-Mike
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tip: locking/urgent] locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
2021-08-31 6:38 [patch] locking, rwsem: Add missing __init_rwsem() for PREEMPT_RT Mike Galbraith
2021-08-31 9:54 ` [tip: locking/urgent] locking/rwsem: " tip-bot2 for Mike Galbraith
@ 2021-09-02 20:14 ` tip-bot2 for Mike Galbraith
1 sibling, 0 replies; 4+ messages in thread
From: tip-bot2 for Mike Galbraith @ 2021-09-02 20:14 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Mike Galbraith, Thomas Gleixner, x86, linux-kernel
The following commit has been merged into the locking/urgent branch of tip:
Commit-ID: 15eb7c888e749fbd1cc0370f3d38de08ad903700
Gitweb: https://git.kernel.org/tip/15eb7c888e749fbd1cc0370f3d38de08ad903700
Author: Mike Galbraith <efault@gmx.de>
AuthorDate: Tue, 31 Aug 2021 08:38:19 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Thu, 02 Sep 2021 22:07:17 +02:00
locking/rwsem: Add missing __init_rwsem() for PREEMPT_RT
730633f0b7f95 became the first direct caller of __init_rwsem() vs the
usual init_rwsem(), exposing PREEMPT_RT's lack thereof. Add it.
[ tglx: Move it out of line ]
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/50a936b7d8f12277d6ec7ed2ef0421a381056909.camel@gmx.de
---
include/linux/rwsem.h | 12 ++----------
kernel/locking/rwsem.c | 10 ++++++----
2 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 426e98e..352c612 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -142,22 +142,14 @@ struct rw_semaphore {
#define DECLARE_RWSEM(lockname) \
struct rw_semaphore lockname = __RWSEM_INITIALIZER(lockname)
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-extern void __rwsem_init(struct rw_semaphore *rwsem, const char *name,
+extern void __init_rwsem(struct rw_semaphore *rwsem, const char *name,
struct lock_class_key *key);
-#else
-static inline void __rwsem_init(struct rw_semaphore *rwsem, const char *name,
- struct lock_class_key *key)
-{
-}
-#endif
#define init_rwsem(sem) \
do { \
static struct lock_class_key __key; \
\
- init_rwbase_rt(&(sem)->rwbase); \
- __rwsem_init((sem), #sem, &__key); \
+ __init_rwsem((sem), #sem, &__key); \
} while (0)
static __always_inline int rwsem_is_locked(struct rw_semaphore *sem)
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index 9215b4d..000e8d5 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -1376,15 +1376,17 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
#include "rwbase_rt.c"
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-void __rwsem_init(struct rw_semaphore *sem, const char *name,
+void __init_rwsem(struct rw_semaphore *sem, const char *name,
struct lock_class_key *key)
{
+ init_rwbase_rt(&(sem)->rwbase);
+
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
lockdep_init_map_wait(&sem->dep_map, name, key, 0, LD_WAIT_SLEEP);
-}
-EXPORT_SYMBOL(__rwsem_init);
#endif
+}
+EXPORT_SYMBOL(__init_rwsem);
static inline void __down_read(struct rw_semaphore *sem)
{
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-09-02 20:14 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-31 6:38 [patch] locking, rwsem: Add missing __init_rwsem() for PREEMPT_RT Mike Galbraith
2021-08-31 9:54 ` [tip: locking/urgent] locking/rwsem: " tip-bot2 for Mike Galbraith
2021-08-31 23:02 ` Mike Galbraith
2021-09-02 20:14 ` tip-bot2 for Mike Galbraith
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.