diff options
Diffstat (limited to 'rust/helpers/spinlock.c')
| -rw-r--r-- | rust/helpers/spinlock.c | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/rust/helpers/spinlock.c b/rust/helpers/spinlock.c index acc1376b833c..5971fdf6f755 100644 --- a/rust/helpers/spinlock.c +++ b/rust/helpers/spinlock.c @@ -1,16 +1,19 @@  // SPDX-License-Identifier: GPL-2.0 -#include <linux/export.h>  #include <linux/spinlock.h>  void rust_helper___spin_lock_init(spinlock_t *lock, const char *name,  				  struct lock_class_key *key)  {  #ifdef CONFIG_DEBUG_SPINLOCK +# if defined(CONFIG_PREEMPT_RT) +	__spin_lock_init(lock, name, key, false); +# else /*!CONFIG_PREEMPT_RT */  	__raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG); -#else +# endif /* CONFIG_PREEMPT_RT */ +#else /* !CONFIG_DEBUG_SPINLOCK */  	spin_lock_init(lock); -#endif +#endif /* CONFIG_DEBUG_SPINLOCK */  }  void rust_helper_spin_lock(spinlock_t *lock) @@ -22,3 +25,8 @@ void rust_helper_spin_unlock(spinlock_t *lock)  {  	spin_unlock(lock);  } + +int rust_helper_spin_trylock(spinlock_t *lock) +{ +	return spin_trylock(lock); +} | 
