X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=kernel%2Frwsem.c;h=291ded556aa034fffb7bf7c25799e9d7bb95eaf2;hb=428929a234d2c4b8a6d0145d0dcf687fcfa27325;hp=790a99bb25aae8c92fa3b5022796021069ba91ef;hpb=c4e05116a2c4d8187127dbf77ab790aa57a47388;p=powerpc.git diff --git a/kernel/rwsem.c b/kernel/rwsem.c index 790a99bb25..291ded556a 100644 --- a/kernel/rwsem.c +++ b/kernel/rwsem.c @@ -103,3 +103,45 @@ void downgrade_write(struct rw_semaphore *sem) } EXPORT_SYMBOL(downgrade_write); + +#ifdef CONFIG_DEBUG_LOCK_ALLOC + +void down_read_nested(struct rw_semaphore *sem, int subclass) +{ + might_sleep(); + rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_); + + __down_read(sem); +} + +EXPORT_SYMBOL(down_read_nested); + +void down_read_non_owner(struct rw_semaphore *sem) +{ + might_sleep(); + + __down_read(sem); +} + +EXPORT_SYMBOL(down_read_non_owner); + +void down_write_nested(struct rw_semaphore *sem, int subclass) +{ + might_sleep(); + rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_); + + __down_write_nested(sem, subclass); +} + +EXPORT_SYMBOL(down_write_nested); + +void up_read_non_owner(struct rw_semaphore *sem) +{ + __up_read(sem); +} + +EXPORT_SYMBOL(up_read_non_owner); + +#endif + +