Re: [PATCH -next] iio: st_accel: Fix unused variable warning

From: Jonathan Cameron
Date: Sat Nov 09 2019 - 06:51:05 EST


On Mon, 4 Nov 2019 09:29:21 +0800
Yuehaibing <yuehaibing@xxxxxxxxxx> wrote:

> On 2019/11/3 4:15, Ladislav Michl 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@xxxxxxxxxxxxxx> 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@xxxxxxxxxx>
> >>>> ---
> >>>> 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):
> >
> > 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,
>
> Does this need inline?

Not that I can see. It's in the c file not the header so there should
be no issue with letting the compiler make the decision.
It will almost certainly be optimized out anyway.

Thanks,

Jonathan


>
> > + 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
> >>>>
> >
> > .
> >
>