diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 0049f7526def..7ae5f0710dde 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -147,3 +147,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_downgrade_wake_finish); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish); diff --git a/include/trace/hooks/rwsem.h b/include/trace/hooks/rwsem.h index 40d960d4e29f..77e34478a42f 100644 --- a/include/trace/hooks/rwsem.h +++ b/include/trace/hooks/rwsem.h @@ -28,6 +28,9 @@ DECLARE_HOOK(android_vh_alter_rwsem_list_add, DECLARE_HOOK(android_vh_rwsem_downgrade_wake_finish, TP_PROTO(struct rw_semaphore *sem), TP_ARGS(sem)); +DECLARE_HOOK(android_vh_rwsem_wake_finish, + TP_PROTO(struct rw_semaphore *sem), + TP_ARGS(sem)); #endif /* _TRACE_HOOK_RWSEM_H */ /* This part must be outside protection */ #include diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c index 4c6524464fdd..9f16fc9376e9 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -1228,6 +1228,7 @@ static struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem) if (!list_empty(&sem->wait_list)) rwsem_mark_wake(sem, RWSEM_WAKE_ANY, &wake_q); + trace_android_vh_rwsem_wake_finish(sem); raw_spin_unlock_irqrestore(&sem->wait_lock, flags); wake_up_q(&wake_q);