Message ID | 20230925230829.341-3-beaub@linux.microsoft.com |
---|---|
State | New |
Headers | show |
Series | tracing/user_events: Fix alignment issues for 32 on 64-bit and BE | expand |
On Wed, 4 Oct 2023 09:10:52 -0600 Shuah Khan <skhan@linuxfoundation.org> wrote: > On 10/3/23 18:59, Steven Rostedt wrote: > > > > Note, this doesn't seem to apply to my tree so I only added the first > > patch. I think this needs to go through Shuah's tree. > > > > -- Steve > > > > > > Yes. I sent a fix up for rc4 - I can pull these two patches into > linux-kselftest next > > Steve! Does that work for you? > I applied the first patch to my tree, I think the second patch is fine to go separately through your tree. -- Steve
On Thu, Oct 05, 2023 at 11:08:15AM -0400, Steven Rostedt wrote: > On Thu, 5 Oct 2023 08:48:14 -0600 > Shuah Khan <skhan@linuxfoundation.org> wrote: > > > Hmm. Which tree is this patch based on? This doesn't apply to > > linux-kselftest fixes - I thought this was based on top of fixes > > since I sent in a fix for Linux 6.6-rc4 for user_events > > > > Beau, Please rebase to the correct tree/branch and send v2 for > > this patch. > > Hmm, so this didn't apply to my tree nor yours. > > Beau, can you verify which tree this goes to? > > -- Steve It was based on tracing/for-next. I'll get a v2 out rebased upon linux-kselftest, does that work? Thanks, -Beau
On Thu, 5 Oct 2023 09:52:30 -0700 Beau Belgrave <beaub@linux.microsoft.com> wrote: > It was based on tracing/for-next. > > I'll get a v2 out rebased upon linux-kselftest, does that work? Hmm, then it should have applied to my tree. I didn't look too deep. Can you see if it applies to: git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git trace/for-next ? Thanks, -- Steve
diff --git a/tools/testing/selftests/user_events/abi_test.c b/tools/testing/selftests/user_events/abi_test.c index 5125c42efe65..67af4c491c0c 100644 --- a/tools/testing/selftests/user_events/abi_test.c +++ b/tools/testing/selftests/user_events/abi_test.c @@ -46,7 +46,7 @@ static int change_event(bool enable) return ret; } -static int reg_enable(long *enable, int size, int bit) +static int reg_enable(void *enable, int size, int bit) { struct user_reg reg = {0}; int fd = open(data_file, O_RDWR); @@ -68,7 +68,7 @@ static int reg_enable(long *enable, int size, int bit) return ret; } -static int reg_disable(long *enable, int bit) +static int reg_disable(void *enable, int bit) { struct user_unreg reg = {0}; int fd = open(data_file, O_RDWR); @@ -89,12 +89,14 @@ static int reg_disable(long *enable, int bit) } FIXTURE(user) { - long check; + int check; + long check_long; }; FIXTURE_SETUP(user) { change_event(false); self->check = 0; + self->check_long = 0; } FIXTURE_TEARDOWN(user) { @@ -131,9 +133,9 @@ TEST_F(user, bit_sizes) { #if BITS_PER_LONG == 8 /* Allow 0-64 bits for 64-bit */ - ASSERT_EQ(0, reg_enable(&self->check, sizeof(long), 63)); - ASSERT_NE(0, reg_enable(&self->check, sizeof(long), 64)); - ASSERT_EQ(0, reg_disable(&self->check, 63)); + ASSERT_EQ(0, reg_enable(&self->check_long, sizeof(long), 63)); + ASSERT_NE(0, reg_enable(&self->check_long, sizeof(long), 64)); + ASSERT_EQ(0, reg_disable(&self->check_long, 63)); #endif /* Disallowed sizes (everything beside 4 and 8) */ @@ -195,7 +197,7 @@ static int clone_check(void *check) for (i = 0; i < 10; ++i) { usleep(100000); - if (*(long *)check) + if (*(int *)check) return 0; }
The abi_test currently uses a long sized test value for enablement checks. On LE this works fine, however, on BE this results in inaccurate assert checks due to a bit being used and assuming it's value is the same on both LE and BE. Use int type for 32-bit values and long type for 64-bit values to ensure appropriate behavior on both LE and BE. Fixes: 60b1af8de8c1 ("tracing/user_events: Add ABI self-test") Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com> --- tools/testing/selftests/user_events/abi_test.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)