Re: [PATCH v2] lib/test_bitops: Do the full test during module init
From: Andy Shevchenko
Date: Mon Jul 06 2020 - 07:34:02 EST
On Mon, Jul 06, 2020 at 01:29:00PM +0200, Geert Uytterhoeven wrote:
> Currently, the bitops test consists of two parts: one part is executed
> during module load, the second part during module unload. This is
> cumbersome for the user, as he has to perform two steps to execute all
> tests, and is different from most (all?) other tests.
>
> Merge the two parts, so both are executed during module load.
I think it's right way to go, sorry, I didn't notice this during module
submission.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
One question though, is compiler barrier enough to prevent potential ordering issues?
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> v2:
> - Keep a dummy module_exit() function to support module unloading.
> ---
> lib/test_bitops.c | 18 ++++++++++--------
> 1 file changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/lib/test_bitops.c b/lib/test_bitops.c
> index ced25e3a779baf96..471141ddd6913724 100644
> --- a/lib/test_bitops.c
> +++ b/lib/test_bitops.c
> @@ -52,9 +52,9 @@ static unsigned long order_comb_long[][2] = {
>
> static int __init test_bitops_startup(void)
> {
> - int i;
> + int i, bit_set;
>
> - pr_warn("Loaded test module\n");
> + pr_info("Starting bitops test\n");
> set_bit(BITOPS_4, g_bitmap);
> set_bit(BITOPS_7, g_bitmap);
> set_bit(BITOPS_11, g_bitmap);
> @@ -81,12 +81,8 @@ static int __init test_bitops_startup(void)
> order_comb_long[i][0]);
> }
> #endif
> - return 0;
> -}
>
> -static void __exit test_bitops_unstartup(void)
> -{
> - int bit_set;
> + barrier();
>
> clear_bit(BITOPS_4, g_bitmap);
> clear_bit(BITOPS_7, g_bitmap);
> @@ -98,7 +94,13 @@ static void __exit test_bitops_unstartup(void)
> if (bit_set != BITOPS_LAST)
> pr_err("ERROR: FOUND SET BIT %d\n", bit_set);
>
> - pr_warn("Unloaded test module\n");
> + pr_info("Completed bitops test\n");
> +
> + return 0;
> +}
> +
> +static void __exit test_bitops_unstartup(void)
> +{
> }
>
> module_init(test_bitops_startup);
> --
> 2.17.1
>
--
With Best Regards,
Andy Shevchenko