Messages in this thread | | | Date | Sun, 9 Apr 2023 13:47:56 -0300 | From | Martin Rodriguez Reboredo <> | Subject | Re: [PATCH v3 04/13] locking/spinlock: introduce spin_lock_init_with_key |
| |
On 4/8/23 04:53, Wedson Almeida Filho wrote: > From: Wedson Almeida Filho <walmeida@microsoft.com> > > Rust cannot call C macros, so it has its own macro to create a new lock > class when a spin lock is initialised. This new function allows Rust > code to pass the lock class it generates to the C implementation. > > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Will Deacon <will@kernel.org> > Cc: Waiman Long <longman@redhat.com> > Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com> > --- > v1 -> v2: No changes > v2 -> v3: No changes > > include/linux/spinlock.h | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h > index be48f1cb1878..cdc92d095133 100644 > --- a/include/linux/spinlock.h > +++ b/include/linux/spinlock.h > @@ -327,12 +327,17 @@ static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock) > > #ifdef CONFIG_DEBUG_SPINLOCK > > +static inline void spin_lock_init_with_key(spinlock_t *lock, const char *name, > + struct lock_class_key *key) > +{ > + __raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG); > +} > + > # define spin_lock_init(lock) \ > do { \ > static struct lock_class_key __key; \ > \ > - __raw_spin_lock_init(spinlock_check(lock), \ > - #lock, &__key, LD_WAIT_CONFIG); \ > + spin_lock_init_with_key(lock, #lock, &__key); \ > } while (0) > > #else
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
| |