summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/user_events
diff options
context:
space:
mode:
authorBeau Belgrave <beaub@linux.microsoft.com>2023-04-26 01:51:05 +0300
committerSteven Rostedt (Google) <rostedt@goodmis.org>2023-04-26 04:04:16 +0300
commit17b439db21d5dbe70c419e982262621e5e6aba7f (patch)
tree20e77f8a2a91e04fbfdb30355df7eb5fbb03643d /tools/testing/selftests/user_events
parentcd98c93286a30cc4588dfd02453bec63c2f4acf4 (diff)
downloadlinux-17b439db21d5dbe70c419e982262621e5e6aba7f.tar.xz
tracing/user_events: Ensure bit is cleared on unregister
If an event is enabled and a user process unregisters user_events, the bit is left set. Fix this by always clearing the bit in the user process if unregister is successful. Update abi self-test to ensure this occurs properly. Link: https://lkml.kernel.org/r/20230425225107.8525-3-beaub@linux.microsoft.com Suggested-by: Doug Cook <dcook@linux.microsoft.com> Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'tools/testing/selftests/user_events')
-rw-r--r--tools/testing/selftests/user_events/abi_test.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/testing/selftests/user_events/abi_test.c b/tools/testing/selftests/user_events/abi_test.c
index e0323d3777a7..5125c42efe65 100644
--- a/tools/testing/selftests/user_events/abi_test.c
+++ b/tools/testing/selftests/user_events/abi_test.c
@@ -109,13 +109,16 @@ TEST_F(user, enablement) {
ASSERT_EQ(0, change_event(false));
ASSERT_EQ(0, self->check);
- /* Should not change after disable */
+ /* Ensure kernel clears bit after disable */
ASSERT_EQ(0, change_event(true));
ASSERT_EQ(1, self->check);
ASSERT_EQ(0, reg_disable(&self->check, 0));
+ ASSERT_EQ(0, self->check);
+
+ /* Ensure doesn't change after unreg */
+ ASSERT_EQ(0, change_event(true));
+ ASSERT_EQ(0, self->check);
ASSERT_EQ(0, change_event(false));
- ASSERT_EQ(1, self->check);
- self->check = 0;
}
TEST_F(user, bit_sizes) {