From patchwork Fri May 17 11:45:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13666900 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA67F41A91; Fri, 17 May 2024 11:47:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715946434; cv=none; b=DZ0BVe1IlWjd/zukW0YqSptfXXIuSKJ9McRtYyoaE7RKGyCI11g4aE/qjRYUhFo96tZWypRKt0d34O3H5ZpR6l74M3hRRYOU3A74iWvuHlRrMojSt9SIKzbIFOJX2nSgsLnDtHrlrxc7F3VJVgsmBrxVueKkrCwVlnNmL/zVoAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715946434; c=relaxed/simple; bh=IZoCG+gnWyPzPIvcxdkZJK9rpMSStUGz9XrJiHOZlhw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Zj4PEuB3JW1smYpzHI44fcWARa92Ws0BozyW7NP8s1ZyIvWArtrooAiRaH+oyJUixBaPfqtGkm3Avhf5xf2a/gxGp3+66iajMhkCBtCgLt53ECz+Os+GJ/d/m4kILR19u45LuKDN57kbsHicCuerPtKzCbMIluKk/b+8fV/WpTY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FWuJnC7j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FWuJnC7j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89202C2BD11; Fri, 17 May 2024 11:47:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715946434; bh=IZoCG+gnWyPzPIvcxdkZJK9rpMSStUGz9XrJiHOZlhw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FWuJnC7jiNv++1D6rN000005VO9+94SQRgIX+HBbnYyi6VUxkNQZGBIIWA+k07T++ pTlw4IimeEtA7OOHaVshlGUkLDOuxBP5eoCEfX1YPZKAZQdKRa4rqbW0Bl/a+W/guw 7DYwCrWA2bdSZdhfNIgbAOscOlORVqPmRhLktaVvrPZyBMqtsjqT9Op3VlGLKx4rX1 ul3dAO4nf5nqyQwQBIAcKfr9bTXAoME8O/+CPZf9uM49zHEdfkjKsNtQuvOSEKRbfW vTQw5GQiUc3fcdhsVwb+rsgF1K+Wq0rdl3YucoyX2XEmYlHgbpJVO7HNJfQULSvjVv BVtAZQH6+8PVA== From: Masahiro Yamada To: Kees Cook , Andy Lutomirski , Will Drewry , linux-kselftest@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Alexandre Belloni , Benjamin Tissoires , Christian Borntraeger , Claudio Imbrenda , David Hildenbrand , Janosch Frank , Jiri Kosina , Shuah Khan , bpf@vger.kernel.org, kvm@vger.kernel.org, linux-input@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH 1/2] selftests: harness: remove unneeded __constructor_order_last() Date: Fri, 17 May 2024 20:45:05 +0900 Message-Id: <20240517114506.1259203-2-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240517114506.1259203-1-masahiroy@kernel.org> References: <20240517114506.1259203-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 __constructor_order_last() is unneeded. If __constructor_order_last() is not called on reverse-order systems, __constructor_order will remain 0 instead of being set to _CONSTRUCTOR_ORDER_BACKWARD (= -1). __LIST_APPEND() will still take the 'else' branch, so there is no difference in the behavior. Signed-off-by: Masahiro Yamada --- .../selftests/drivers/s390x/uvdevice/test_uvdevice.c | 6 ------ tools/testing/selftests/hid/hid_bpf.c | 6 ------ tools/testing/selftests/kselftest_harness.h | 10 +--------- tools/testing/selftests/rtc/rtctest.c | 7 ------- 4 files changed, 1 insertion(+), 28 deletions(-) diff --git a/tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c b/tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c index ea0cdc37b44f..7ee7492138c6 100644 --- a/tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c +++ b/tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c @@ -257,12 +257,6 @@ TEST_F(attest_fixture, att_inval_addr) att_inval_addr_test(&self->uvio_attest.meas_addr, _metadata, self); } -static void __attribute__((constructor)) __constructor_order_last(void) -{ - if (!__constructor_order) - __constructor_order = _CONSTRUCTOR_ORDER_BACKWARD; -} - int main(int argc, char **argv) { int fd = open(UV_PATH, O_ACCMODE); diff --git a/tools/testing/selftests/hid/hid_bpf.c b/tools/testing/selftests/hid/hid_bpf.c index 2cf96f818f25..f47feef2aced 100644 --- a/tools/testing/selftests/hid/hid_bpf.c +++ b/tools/testing/selftests/hid/hid_bpf.c @@ -853,12 +853,6 @@ static int libbpf_print_fn(enum libbpf_print_level level, return 0; } -static void __attribute__((constructor)) __constructor_order_last(void) -{ - if (!__constructor_order) - __constructor_order = _CONSTRUCTOR_ORDER_BACKWARD; -} - int main(int argc, char **argv) { /* Use libbpf 1.0 API mode */ diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h index ba3ddeda24bf..60c1cf5b0f0d 100644 --- a/tools/testing/selftests/kselftest_harness.h +++ b/tools/testing/selftests/kselftest_harness.h @@ -444,12 +444,6 @@ * Use once to append a main() to the test file. */ #define TEST_HARNESS_MAIN \ - static void __attribute__((constructor)) \ - __constructor_order_last(void) \ - { \ - if (!__constructor_order) \ - __constructor_order = _CONSTRUCTOR_ORDER_BACKWARD; \ - } \ int main(int argc, char **argv) { \ return test_harness_run(argc, argv); \ } @@ -846,7 +840,6 @@ static struct __fixture_metadata *__fixture_list = &_fixture_global; static int __constructor_order; #define _CONSTRUCTOR_ORDER_FORWARD 1 -#define _CONSTRUCTOR_ORDER_BACKWARD -1 static inline void __register_fixture(struct __fixture_metadata *f) { @@ -1272,8 +1265,7 @@ static int test_harness_run(int argc, char **argv) static void __attribute__((constructor)) __constructor_order_first(void) { - if (!__constructor_order) - __constructor_order = _CONSTRUCTOR_ORDER_FORWARD; + __constructor_order = _CONSTRUCTOR_ORDER_FORWARD; } #endif /* __KSELFTEST_HARNESS_H */ diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c index 63ce02d1d5cc..9647b14b47c5 100644 --- a/tools/testing/selftests/rtc/rtctest.c +++ b/tools/testing/selftests/rtc/rtctest.c @@ -410,13 +410,6 @@ TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) { ASSERT_EQ(new, secs); } -static void __attribute__((constructor)) -__constructor_order_last(void) -{ - if (!__constructor_order) - __constructor_order = _CONSTRUCTOR_ORDER_BACKWARD; -} - int main(int argc, char **argv) { switch (argc) { From patchwork Fri May 17 11:45:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13666901 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F12446430; Fri, 17 May 2024 11:47:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715946436; cv=none; b=TqNCut4ENGLVqaxl0hZGA4Mhs0ghu14QYnLZr1gTPas9AXo4ccpag5LB0Wd2CXwj2By4JcIrhGX9SOKCVlFKKsHz0281/V63DDQOyJkmrBxx1CfBCVK0rEVLhiLhhbq9ezEya/FzIrXHaxvmJIjzfi9uUOsXSmDVD4xAmd35AfQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715946436; c=relaxed/simple; bh=UoqNsGNyzyLu7s8bzQeD6P7uutNDfTV+vmBWhSAmYEI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rdEtFGRtr/jfxKrVFX9wY065VoG0f4ofkeJNBf+kUzukhgyZpPzgKMAsZupuWwORp0ptPczS69lQ0ac/jORyLruDg5XXir00mtzGYSKPc/FbBM8u9PHl+IBJI47dZDrPEo0gw5MvDPgy7OtrJlGVQrzCe5grS1X5k7T8eluqc+0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=a78AsdW9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="a78AsdW9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9311C4AF07; Fri, 17 May 2024 11:47:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1715946436; bh=UoqNsGNyzyLu7s8bzQeD6P7uutNDfTV+vmBWhSAmYEI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a78AsdW997eVleC7I4mBtEYm9dUKx0MkihPH/trqPkmt0SCVZyhnkrzfWxuKmdel5 ZRMl5OVO4o4WYYz9biGJ0l+XKq316WwuLuFYxpTSlgmBGv3+l7L0/nICVxkb+U06F6 JVOhNBT1DpKF5hKB9cTJHLnN1Tqug05mdCvaGo6NSXasCcPRKOFM2/NUuKFGdPHSX2 otq4NVOyl9jGmrAMk5XAKkjaQBHoPrvokxa4leQtcSdbJD9LDGvJ7vyNYKuZO0g6RP 4f/3An+FQ+475nA2mt2P4Py9EQJYCwtYC6+bVRueDtx0TLUcl8OUxcO8N0nRX45k0p cWJXngRytIpjw== From: Masahiro Yamada To: Kees Cook , Andy Lutomirski , Will Drewry , linux-kselftest@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Shuah Khan Subject: [PATCH 2/2] selftests: harness: rename __constructor_order for clarification Date: Fri, 17 May 2024 20:45:06 +0900 Message-Id: <20240517114506.1259203-3-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240517114506.1259203-1-masahiroy@kernel.org> References: <20240517114506.1259203-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Now, __constructor_order is boolean; 1 for forward-order systems, 0 for reverse-order systems while parsing __LIST_APPEND(). Change it into a bool variable, and rename it for clarification. Signed-off-by: Masahiro Yamada --- tools/testing/selftests/kselftest_harness.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h index 60c1cf5b0f0d..55f96037582b 100644 --- a/tools/testing/selftests/kselftest_harness.h +++ b/tools/testing/selftests/kselftest_harness.h @@ -774,7 +774,7 @@ item->prev = item; \ return; \ } \ - if (__constructor_order == _CONSTRUCTOR_ORDER_FORWARD) { \ + if (__constructor_order_forward) { \ item->next = NULL; \ item->prev = head->prev; \ item->prev->next = item; \ @@ -837,9 +837,7 @@ struct __test_xfail { } static struct __fixture_metadata *__fixture_list = &_fixture_global; -static int __constructor_order; - -#define _CONSTRUCTOR_ORDER_FORWARD 1 +static bool __constructor_order_forward; static inline void __register_fixture(struct __fixture_metadata *f) { @@ -891,7 +889,7 @@ static inline bool __test_passed(struct __test_metadata *metadata) * list so tests are run in source declaration order. * https://gcc.gnu.org/onlinedocs/gccint/Initialization.html * However, it seems not all toolchains do this correctly, so use - * __constructor_order to detect which direction is called first + * __constructor_order_foward to detect which direction is called first * and adjust list building logic to get things running in the right * direction. */ @@ -1265,7 +1263,7 @@ static int test_harness_run(int argc, char **argv) static void __attribute__((constructor)) __constructor_order_first(void) { - __constructor_order = _CONSTRUCTOR_ORDER_FORWARD; + __constructor_order_forward = true; } #endif /* __KSELFTEST_HARNESS_H */