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:   Sun, 3 Nov 2019 11:01:31 +0000
From:   Jonathan Cameron <jic23@...nel.org>
To:     Ladislav Michl <ladis@...ux-mips.org>
Cc:     YueHaibing <yuehaibing@...wei.com>, knaack.h@....de,
        lars@...afoo.de, pmeerw@...erw.net, denis.ciocca@...com,
        rfontana@...hat.com, tglx@...utronix.de, heiko.stuebner@...com,
        rjones@...eworks.com, drake@...lessm.com, colin.king@...onical.com,
        linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH -next] iio: st_accel: Fix unused variable warning

On Sat, 2 Nov 2019 21:15:35 +0100
Ladislav Michl <ladis@...ux-mips.org> wrote:

> On Sat, Nov 02, 2019 at 02:08:10PM +0000, Jonathan Cameron wrote:
> > On Sat, 2 Nov 2019 11:41:25 +0100
> > Ladislav Michl <ladis@...ux-mips.org> wrote:
> >   
> > > On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:  
> > > > drivers/iio/accel/st_accel_core.c:1005:44: warning:
> > > >  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> > > > 
> > > > Move it to ifdef to mute this warning.
> > > > 
> > > > Signed-off-by: YueHaibing <yuehaibing@...wei.com>
> > > > ---
> > > >  drivers/iio/accel/st_accel_core.c | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > > 
> > > > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > > > index 2e37f8a..bba0717 100644
> > > > --- a/drivers/iio/accel/st_accel_core.c
> > > > +++ b/drivers/iio/accel/st_accel_core.c
> > > > @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
> > > >  	return adata->mount_matrix;
> > > >  }
> > > >  
> > > > +#ifdef CONFIG_ACPI
> > > >  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> > > >  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),    
> > > 
> > > So now you do not get any warning for unused get_mount_matrix?
> > > (Then it would make more sense to put all that stuff under one ifdef
> > > and provide empty apply_acpi_orientation for non ACPI case)  
> > 
> > Does the __maybe_unused marking make this go away?
> > 
> > I'd assume that the compiler will manage to drop this either way
> > but I guess we should check that.
> > 
> > ifdef magic is always harder to read and potentially fragile in the
> > long run.  Here we simply want to indicate that in some build
> > configurations we might not use this.  
> 
> This suggestion implies we'll get rid of CONFIG_ACPI completely, which
> seems inapproriate looking at size of apply_acpi_orientation function.
> And having both CONFIG_ACPI and __maybe_unused does not make much
> sense. I had something like that in mind (+COMPILE_TEST perhaps):

One additional oddity here is why we have explicit support for
the mount matrix only in the ACPI paths.  There are standard DT bindings
for it as well which we should be using.

So let us take your approach below for now, but it would be good to
support this properly on non acpi platforms as well.  Where it isn't
specified it will fall back to an identity matrix which is as good as
we have now with no information supplied.

Please send a v2 with the below.

Thanks,

Jonathan

> 
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index 2e37f8a6d8cf..0e7eac62d618 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -993,6 +993,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = {
>  #define ST_ACCEL_TRIGGER_OPS NULL
>  #endif
>  
> +#ifdef CONFIG_ACPI
>  static const struct iio_mount_matrix *
>  get_mount_matrix(const struct iio_dev *indio_dev,
>  		 const struct iio_chan_spec *chan)
> @@ -1013,7 +1014,6 @@ static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
>  static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  				  struct iio_chan_spec *channels)
>  {
> -#ifdef CONFIG_ACPI
>  	struct st_sensor_data *adata = iio_priv(indio_dev);
>  	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
>  	struct acpi_device *adev;
> @@ -1141,10 +1141,14 @@ static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  out:
>  	kfree(buffer.pointer);
>  	return ret;
> -#else /* !CONFIG_ACPI */
> +}
> +#else
> +static int apply_acpi_orientation(struct iio_dev *indio_dev,
> +				  struct iio_chan_spec *channels)
> +{
>  	return 0;
> -#endif
>  }
> +#endif
>  
>  /*
>   * st_accel_get_settings() - get sensor settings from device name
> > Thanks,
> > 
> > Jonathan
> > 
> >   
> > >   
> > > >  	{ },
> > > >  };
> > > > +#endif
> > > >  
> > > >  /* Read ST-specific _ONT orientation data from ACPI and generate an
> > > >   * appropriate mount matrix.
> > > > -- 
> > > > 2.7.4
> > > >     

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ