.. | .. |
---|
28 | 28 | #include <linux/rwsem.h> |
---|
29 | 29 | #include <linux/atomic.h> |
---|
30 | 30 | |
---|
31 | | -#ifndef CONFIG_PREEMPT_RT |
---|
32 | 31 | #include "lock_events.h" |
---|
33 | 32 | #include <trace/hooks/rwsem.h> |
---|
34 | 33 | #include <trace/hooks/dtask.h> |
---|
.. | .. |
---|
1525 | 1524 | if (tmp & RWSEM_FLAG_WAITERS) |
---|
1526 | 1525 | rwsem_downgrade_wake(sem); |
---|
1527 | 1526 | } |
---|
1528 | | -#endif |
---|
1529 | 1527 | |
---|
1530 | 1528 | /* |
---|
1531 | 1529 | * lock for reading |
---|
.. | .. |
---|
1639 | 1637 | void up_write(struct rw_semaphore *sem) |
---|
1640 | 1638 | { |
---|
1641 | 1639 | rwsem_release(&sem->dep_map, _RET_IP_); |
---|
| 1640 | + trace_android_vh_rwsem_write_finished(sem); |
---|
1642 | 1641 | __up_write(sem); |
---|
1643 | 1642 | } |
---|
1644 | 1643 | EXPORT_SYMBOL(up_write); |
---|
.. | .. |
---|
1649 | 1648 | void downgrade_write(struct rw_semaphore *sem) |
---|
1650 | 1649 | { |
---|
1651 | 1650 | lock_downgrade(&sem->dep_map, _RET_IP_); |
---|
| 1651 | + trace_android_vh_rwsem_write_finished(sem); |
---|
1652 | 1652 | __downgrade_write(sem); |
---|
1653 | 1653 | } |
---|
1654 | 1654 | EXPORT_SYMBOL(downgrade_write); |
---|
.. | .. |
---|
1689 | 1689 | { |
---|
1690 | 1690 | might_sleep(); |
---|
1691 | 1691 | __down_read(sem); |
---|
1692 | | -#ifndef CONFIG_PREEMPT_RT |
---|
1693 | 1692 | __rwsem_set_reader_owned(sem, NULL); |
---|
1694 | | -#endif |
---|
1695 | 1693 | } |
---|
1696 | 1694 | EXPORT_SYMBOL(down_read_non_owner); |
---|
1697 | 1695 | |
---|
.. | .. |
---|
1720 | 1718 | |
---|
1721 | 1719 | void up_read_non_owner(struct rw_semaphore *sem) |
---|
1722 | 1720 | { |
---|
1723 | | -#ifndef CONFIG_PREEMPT_RT |
---|
1724 | 1721 | DEBUG_RWSEMS_WARN_ON(!is_rwsem_reader_owned(sem), sem); |
---|
1725 | | -#endif |
---|
1726 | 1722 | __up_read(sem); |
---|
1727 | 1723 | } |
---|
1728 | 1724 | EXPORT_SYMBOL(up_read_non_owner); |
---|