This reverts commit d9a1ff40f5aa9b493f26812c8850423e386ba7c9. The new revocable functionality is fundamentally broken and at a minimum needs to be redesigned.
Drop the revocable Kunit tests to allow the implementation to be reverted. Signed-off-by: Johan Hovold <[email protected]> --- MAINTAINERS | 1 - drivers/base/Kconfig | 8 -- drivers/base/Makefile | 3 - drivers/base/revocable_test.c | 142 ---------------------------------- 4 files changed, 154 deletions(-) delete mode 100644 drivers/base/revocable_test.c diff --git a/MAINTAINERS b/MAINTAINERS index bf38181c07e4..fac638cbb40a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22375,7 +22375,6 @@ M: Tzung-Bi Shih <[email protected]> L: [email protected] S: Maintained F: drivers/base/revocable.c -F: drivers/base/revocable_test.c F: include/linux/revocable.h RFKILL diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 8f7d7b9d81ac..1786d87b29e2 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -250,11 +250,3 @@ config FW_DEVLINK_SYNC_STATE_TIMEOUT work on. endmenu - -# Kunit test cases -config REVOCABLE_KUNIT_TEST - tristate "Kunit tests for revocable" if !KUNIT_ALL_TESTS - depends on KUNIT - default KUNIT_ALL_TESTS - help - Kunit tests for the revocable API. diff --git a/drivers/base/Makefile b/drivers/base/Makefile index 4185aaa9bbb9..bdf854694e39 100644 --- a/drivers/base/Makefile +++ b/drivers/base/Makefile @@ -35,6 +35,3 @@ ccflags-$(CONFIG_DEBUG_DRIVER) := -DDEBUG # define_trace.h needs to know how to find our header CFLAGS_trace.o := -I$(src) obj-$(CONFIG_TRACING) += trace.o - -# Kunit test cases -obj-$(CONFIG_REVOCABLE_KUNIT_TEST) += revocable_test.o diff --git a/drivers/base/revocable_test.c b/drivers/base/revocable_test.c deleted file mode 100644 index 873a44082b6c..000000000000 --- a/drivers/base/revocable_test.c +++ /dev/null @@ -1,142 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Copyright 2026 Google LLC - * - * Kunit tests for the revocable API. - * - * The test cases cover the following scenarios: - * - * - Basic: Verifies that a consumer can successfully access the resource - * provided via the provider. - * - * - Revocation: Verifies that after the provider revokes the resource, - * the consumer correctly receives a NULL pointer on a subsequent access. - * - * - Try Access Macro: Same as "Revocation" but uses the - * REVOCABLE_TRY_ACCESS_WITH() and REVOCABLE_TRY_ACCESS_SCOPED(). - */ - -#include <kunit/test.h> -#include <linux/revocable.h> - -static void revocable_test_basic(struct kunit *test) -{ - struct revocable_provider *rp; - struct revocable *rev; - void *real_res = (void *)0x12345678, *res; - - rp = revocable_provider_alloc(real_res); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rp); - - rev = revocable_alloc(rp); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rev); - - res = revocable_try_access(rev); - KUNIT_EXPECT_PTR_EQ(test, res, real_res); - revocable_withdraw_access(rev); - - revocable_free(rev); - revocable_provider_revoke(rp); -} - -static void revocable_test_revocation(struct kunit *test) -{ - struct revocable_provider *rp; - struct revocable *rev; - void *real_res = (void *)0x12345678, *res; - - rp = revocable_provider_alloc(real_res); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rp); - - rev = revocable_alloc(rp); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rev); - - res = revocable_try_access(rev); - KUNIT_EXPECT_PTR_EQ(test, res, real_res); - revocable_withdraw_access(rev); - - revocable_provider_revoke(rp); - - res = revocable_try_access(rev); - KUNIT_EXPECT_PTR_EQ(test, res, NULL); - revocable_withdraw_access(rev); - - revocable_free(rev); -} - -static void revocable_test_try_access_macro(struct kunit *test) -{ - struct revocable_provider *rp; - struct revocable *rev; - void *real_res = (void *)0x12345678, *res; - - rp = revocable_provider_alloc(real_res); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rp); - - rev = revocable_alloc(rp); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rev); - - { - REVOCABLE_TRY_ACCESS_WITH(rev, res); - KUNIT_EXPECT_PTR_EQ(test, res, real_res); - } - - revocable_provider_revoke(rp); - - { - REVOCABLE_TRY_ACCESS_WITH(rev, res); - KUNIT_EXPECT_PTR_EQ(test, res, NULL); - } - - revocable_free(rev); -} - -static void revocable_test_try_access_macro2(struct kunit *test) -{ - struct revocable_provider *rp; - struct revocable *rev; - void *real_res = (void *)0x12345678, *res; - bool accessed; - - rp = revocable_provider_alloc(real_res); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rp); - - rev = revocable_alloc(rp); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, rev); - - accessed = false; - REVOCABLE_TRY_ACCESS_SCOPED(rev, res) { - KUNIT_EXPECT_PTR_EQ(test, res, real_res); - accessed = true; - } - KUNIT_EXPECT_TRUE(test, accessed); - - revocable_provider_revoke(rp); - - accessed = false; - REVOCABLE_TRY_ACCESS_SCOPED(rev, res) { - KUNIT_EXPECT_PTR_EQ(test, res, NULL); - accessed = true; - } - KUNIT_EXPECT_TRUE(test, accessed); - - revocable_free(rev); -} - -static struct kunit_case revocable_test_cases[] = { - KUNIT_CASE(revocable_test_basic), - KUNIT_CASE(revocable_test_revocation), - KUNIT_CASE(revocable_test_try_access_macro), - KUNIT_CASE(revocable_test_try_access_macro2), - {} -}; - -static struct kunit_suite revocable_test_suite = { - .name = "revocable_test", - .test_cases = revocable_test_cases, -}; - -kunit_test_suite(revocable_test_suite); - -MODULE_DESCRIPTION("KUnit tests for the revocable API"); -MODULE_LICENSE("GPL"); -- 2.52.0
