Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 302707fd authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

locking/percpu-rwsem: Export symbols for locktorture



This commit exports percpu_down_read(), percpu_down_write(),
__percpu_init_rwsem(), percpu_up_read(), and percpu_up_write() to allow
locktorture to test them when built as a module.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
parent 095777c4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ int __percpu_init_rwsem(struct percpu_rw_semaphore *brw,
	init_waitqueue_head(&brw->write_waitq);
	return 0;
}
EXPORT_SYMBOL_GPL(__percpu_init_rwsem);

void percpu_free_rwsem(struct percpu_rw_semaphore *brw)
{
@@ -87,6 +88,7 @@ void percpu_down_read(struct percpu_rw_semaphore *brw)
	/* avoid up_read()->rwsem_release() */
	__up_read(&brw->rw_sem);
}
EXPORT_SYMBOL_GPL(percpu_down_read);

int percpu_down_read_trylock(struct percpu_rw_semaphore *brw)
{
@@ -112,6 +114,7 @@ void percpu_up_read(struct percpu_rw_semaphore *brw)
	if (atomic_dec_and_test(&brw->slow_read_ctr))
		wake_up_all(&brw->write_waitq);
}
EXPORT_SYMBOL_GPL(percpu_up_read);

static int clear_fast_ctr(struct percpu_rw_semaphore *brw)
{
@@ -163,6 +166,7 @@ void percpu_down_write(struct percpu_rw_semaphore *brw)
	/* wait for all readers to complete their percpu_up_read() */
	wait_event(brw->write_waitq, !atomic_read(&brw->slow_read_ctr));
}
EXPORT_SYMBOL_GPL(percpu_down_write);

void percpu_up_write(struct percpu_rw_semaphore *brw)
{
@@ -176,3 +180,4 @@ void percpu_up_write(struct percpu_rw_semaphore *brw)
	/* the last writer unblocks update_fast_ctr() */
	atomic_dec(&brw->write_ctr);
}
EXPORT_SYMBOL_GPL(percpu_up_write);