mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 05:34:13 -05:00
locking/percpu-rwsem: Add guard support
To simplify the usage of the percpu rw semaphore. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20250314172700.438923-2-kan.liang@linux.intel.com
This commit is contained in:
committed by
Peter Zijlstra
parent
cb43691293
commit
fdfda868ee
@@ -8,6 +8,7 @@
|
||||
#include <linux/wait.h>
|
||||
#include <linux/rcu_sync.h>
|
||||
#include <linux/lockdep.h>
|
||||
#include <linux/cleanup.h>
|
||||
|
||||
struct percpu_rw_semaphore {
|
||||
struct rcu_sync rss;
|
||||
@@ -125,6 +126,13 @@ extern bool percpu_is_read_locked(struct percpu_rw_semaphore *);
|
||||
extern void percpu_down_write(struct percpu_rw_semaphore *);
|
||||
extern void percpu_up_write(struct percpu_rw_semaphore *);
|
||||
|
||||
DEFINE_GUARD(percpu_read, struct percpu_rw_semaphore *,
|
||||
percpu_down_read(_T), percpu_up_read(_T))
|
||||
DEFINE_GUARD_COND(percpu_read, _try, percpu_down_read_trylock(_T))
|
||||
|
||||
DEFINE_GUARD(percpu_write, struct percpu_rw_semaphore *,
|
||||
percpu_down_write(_T), percpu_up_write(_T))
|
||||
|
||||
static inline bool percpu_is_write_locked(struct percpu_rw_semaphore *sem)
|
||||
{
|
||||
return atomic_read(&sem->block);
|
||||
|
||||
Reference in New Issue
Block a user