The driver has two instances of #ifdef _DEBUG, but when the symbol is actually defined, we get a build error because of the old-style C function definition. Fix this and while at it, turn it into a bselftest. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- common/tlsf.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/common/tlsf.c b/common/tlsf.c index 3ca58e3abbfb..8dbb41077cad 100644 --- a/common/tlsf.c +++ b/common/tlsf.c @@ -1,14 +1,19 @@ // SPDX-License-Identifier: GPL-2.0-only +#define pr_fmt(fmt) "tlsf: " fmt + #include <stdio.h> #include <stdlib.h> #include <string.h> #include <tlsf.h> +#include <bselftest.h> #include "tlsfbits.h" #include <linux/kasan.h> #define CHAR_BIT 8 +BSELFTEST_GLOBALS(); + #ifndef CONFIG_KASAN #define __memcpy memcpy #endif @@ -870,11 +875,13 @@ void tlsf_remove_pool(tlsf_t tlsf, pool_t pool) ** TLSF main interface. */ -#ifdef _DEBUG -int test_ffs_fls() +static int test_tlfs_ffs_fls(void) { - /* Verify ffs/fls work properly. */ int rv = 0; + + total_tests = 8; + + /* Verify ffs/fls work properly. */ rv += (tlsf_ffs(0) == -1) ? 0 : 0x1; rv += (tlsf_fls(0) == -1) ? 0 : 0x2; rv += (tlsf_ffs(1) == 0) ? 0 : 0x4; @@ -885,28 +892,21 @@ int test_ffs_fls() rv += (tlsf_fls(0x7FFFFFFF) == 30) ? 0 : 0x80; #if defined (TLSF_64BIT) + total_tests += 3; rv += (tlsf_fls_sizet(0x80000000) == 31) ? 0 : 0x100; rv += (tlsf_fls_sizet(0x100000000) == 32) ? 0 : 0x200; rv += (tlsf_fls_sizet(0xffffffffffffffff) == 63) ? 0 : 0x400; +#else + skipped_tests += 3; #endif - if (rv) - { - printf("test_ffs_fls: %x ffs/fls tests failed.\n", rv); - } - return rv; + failed_tests = rv; + return 0; } -#endif +bselftest(core, test_tlfs_ffs_fls); tlsf_t tlsf_create(void* mem) { -#ifdef _DEBUG - if (test_ffs_fls()) - { - return 0; - } -#endif - if (((tlsfptr_t)mem % ALIGN_SIZE) != 0) { printf("tlsf_create: Memory must be aligned to %u bytes.\n", -- 2.30.2