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.shevche...@linux.intel.com>

One question though, is compiler barrier enough to prevent potential ordering 
issues?

> Signed-off-by: Geert Uytterhoeven <ge...@linux-m68k.org>
> ---
> 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


Reply via email to