Message ID | 20230911160935.10720-1-aleksander.lobakin@intel.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | tracing/user_events: fix long size check in the ABI selftest | expand |
From: Alexander Lobakin <aleksander.lobakin@intel.com> Date: Mon, 11 Sep 2023 18:09:35 +0200 > The current check for 64-bit architecture is double-bugged. > First of all, %BITS_PER_LONG is not available in the userspace, > the underscored version from <asm/bitsperlong.h> must be used. > The following check: > > #if BITS_PER_LONG == 0 > #error > #endif > > triggers the error in this source file -- the macro is undefined and > thus is implicitly evaluated to 0. > Next, %BITS_PER_LONG means "bits", not "bytes". In the Linux kernel, > it can be 32 or 64, never 8. Given that the tests guarded by that check > are meant to be run on a 64-bit system, the correct value would be 64. > > Prefix the macro name and fix the value it's compared to. > > Fixes: 60b1af8de8c1 ("tracing/user_events: Add ABI self-test") > Cc: stable@vger.kernel.org # 6.4+ > Reviewed-by: Ira Weiny <ira.weiny@intel.com> > Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com> Patchwork says "Accepted", but I don't see it anywhere on korg O_o [...] Thanks, Olek
diff --git a/tools/testing/selftests/user_events/abi_test.c b/tools/testing/selftests/user_events/abi_test.c index 5125c42efe65..4b30461fc741 100644 --- a/tools/testing/selftests/user_events/abi_test.c +++ b/tools/testing/selftests/user_events/abi_test.c @@ -129,7 +129,7 @@ TEST_F(user, bit_sizes) { ASSERT_EQ(0, reg_disable(&self->check, 0)); ASSERT_EQ(0, reg_disable(&self->check, 31)); -#if BITS_PER_LONG == 8 +#if __BITS_PER_LONG == 64 /* 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));