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] [day] [month] [year] [list]
Date:	Tue, 15 Mar 2016 16:48:30 -0700
From:	Dmitry Torokhov <dmitry.torokhov@...il.com>
To:	Arnd Bergmann <arnd@...db.de>
Cc:	Daniel Mack <daniel@...que.org>,
	Haojian Zhuang <haojian.zhuang@...il.com>,
	Robert Jarzmik <robert.jarzmik@...e.fr>,
	linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define
 props

On Tue, Mar 15, 2016 at 10:31:17PM +0100, Arnd Bergmann wrote:
> gcc-6.0 notices that the use of the property_entry in this file that
> was recently introduced cannot work right, as we initialize the wrong
> field:
> 
> raumfeld.c:387:3: error: the address of 'raumfeld_rotary_encoder_steps' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
>    ^~~~~~~~~~~~
> raumfeld.c:389:3: error: the address of 'raumfeld_rotary_encoder_axis' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
>    ^~~~~~~~~~~~
> raumfeld.c:391:3: error: the address of 'raumfeld_rotary_encoder_relative_axis' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
>    ^~~~~~~~~~~~
> 
> The problem appears to stem from relying on an old definition of
> 'struct property', but it has changed several times since the code
> could have last been correct.
> 
> This changes the code to use the PROPERTY_ENTRY_INTEGER() macro instead,
> which works fine for the current definition and is a safer way of doing
> the initialization.

Ah, very nice, I hated how the original style of specifying properties
worked. I'll have to pull 4.5 into my branch first to get it though...

> 
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> Fixes: a9e340dce3c3 ("Input: rotary_encoder - move away from platform data structure")
> ---
> 
> The broken patch is currently in the input-next tree, please apply this
> fixup on top.

Applied, thank you.

> 
>  arch/arm/mach-pxa/raumfeld.c | 15 ++++-----------
>  1 file changed, 4 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
> index 16ffd01daff1..5a941bd3dbed 100644
> --- a/arch/arm/mach-pxa/raumfeld.c
> +++ b/arch/arm/mach-pxa/raumfeld.c
> @@ -378,18 +378,11 @@ static struct gpiod_lookup_table raumfeld_rotary_gpios_table = {
>  	},
>  };
>  
> -static u32 raumfeld_rotary_encoder_steps = 24;
> -static u32 raumfeld_rotary_encoder_axis = REL_X;
> -static u32 raumfeld_rotary_encoder_relative_axis = 1;
> -
>  static struct property_entry raumfeld_rotary_properties[] = {
> -	{ "rotary-encoder,steps-per-period",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
> -	{ "linux,axis",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
> -	{ "rotary-encoder,relative_axis",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
> -	{ NULL }
> +	PROPERTY_ENTRY_INTEGER("rotary-encoder,steps-per-period", u32, 24),
> +	PROPERTY_ENTRY_INTEGER("linux,axis",			  u32, REL_X),
> +	PROPERTY_ENTRY_INTEGER("rotary-encoder,relative_axis",	  u32, 1),
> +	{ },
>  };
>  
>  static struct property_set raumfeld_rotary_property_set = {
> -- 
> 2.7.0
> 

-- 
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ