lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 6 Jul 2020 14:34:00 +0300
From:   Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To:     Geert Uytterhoeven <geert@...ux-m68k.org>
Cc:     Wei Yang <richard.weiyang@...il.com>,
        Jesse Brandeburg <jesse.brandeburg@...el.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] lib/test_bitops: Do the full test during module init

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

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

> Signed-off-by: Geert Uytterhoeven <geert@...ux-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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ