Steps to reproduce (v6.1-rc2, x86_64):
1. make defconfig menuconfig
2. Enable the driver:
-> Device Drivers
-> Industrial I/O support (IIO [=y])
-> Light sensors
-> ROHM RPR0521 ALS and proximity sensor driver
3. make drivers/iio/light/rpr0521.o
Causes "implicit declaration of function" errors, e.g.,
CC drivers/iio/light/rpr0521.o
drivers/iio/light/rpr0521.c: In function 'rpr0521_drdy_irq_thread':
drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
434 | iio_trigger_poll_chained(data->drdy_trigger0);
| ^~~~~~~~~~~~~~~~~~~~~~~~
(This bug was found with the help of a tool, krepair, that generates
configuration files for commits: https://github.com/paulgazz/kmax)
The following patch ensures that the code controlled by IIO_BUFFER and
IIO_TRIGGERED_BUFFER is available:
Reported-by: Paul Gazzillo <[email protected]>
---
drivers/iio/light/Kconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
index 7cf6e8490123..0d4447df7200 100644
--- a/drivers/iio/light/Kconfig
+++ b/drivers/iio/light/Kconfig
@@ -293,6 +293,8 @@ config RPR0521
tristate "ROHM RPR0521 ALS and proximity sensor driver"
depends on I2C
select REGMAP_I2C
+ select IIO_BUFFER
+ select IIO_TRIGGERED_BUFFER
help
Say Y here if you want to build support for ROHM's RPR0521
ambient light and proximity sensor device.
--
2.25.1
On Thu, Nov 10, 2022 at 09:44:48AM -0500, Paul Gazzillo wrote:
> Steps to reproduce (v6.1-rc2, x86_64):
>
> 1. make defconfig menuconfig
> 2. Enable the driver:
> -> Device Drivers
> -> Industrial I/O support (IIO [=y])
> -> Light sensors
> -> ROHM RPR0521 ALS and proximity sensor driver
> 3. make drivers/iio/light/rpr0521.o
>
> Causes "implicit declaration of function" errors, e.g.,
> CC drivers/iio/light/rpr0521.o
> drivers/iio/light/rpr0521.c: In function 'rpr0521_drdy_irq_thread':
These two lines can be removed.
> drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
> 'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
> 434 | iio_trigger_poll_chained(data->drdy_trigger0);
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> (This bug was found with the help of a tool, krepair, that generates
> configuration files for commits: https://github.com/paulgazz/kmax)
I'm not sure we need this in the commit message. Do we have a tag for
the static analyzers?
> The following patch ensures that the code controlled by IIO_BUFFER and
> IIO_TRIGGERED_BUFFER is available:
> Reported-by: Paul Gazzillo <[email protected]>
Without SoB this may not be anyhow proceeded. Please, read Submitting Patches
documentation and try again.
(Btw, Reported-by above contradicts the commit message that refers to the tool,
and not human)
--
With Best Regards,
Andy Shevchenko
On 11/10/2022, Andy Shevchenko wrote:
> On Thu, Nov 10, 2022 at 09:44:48AM -0500, Paul Gazzillo wrote:
>
> > CC drivers/iio/light/rpr0521.o
> > drivers/iio/light/rpr0521.c: In function 'rpr0521_drdy_irq_thread':
>
> These two lines can be removed.
Will do.
> > (This bug was found with the help of a tool, krepair, that generates
> > configuration files for commits: https://github.com/paulgazz/kmax)
>
> I'm not sure we need this in the commit message. Do we have a tag for
> the static analyzers?
I'll also remove this.
> > The following patch ensures that the code controlled by IIO_BUFFER and
> > IIO_TRIGGERED_BUFFER is available:
>
> > Reported-by: Paul Gazzillo <[email protected]>
>
> Without SoB this may not be anyhow proceeded. Please, read Submitting Patches
> documentation and try again.
>
> (Btw, Reported-by above contradicts the commit message that refers to the tool,
> and not human)
Apologies, I was confused about whether I or the maintainer fills that
out. Will submit a new version with SoB.
Thanks!
Paul
>
> --
> With Best Regards,
> Andy Shevchenko
Fix an implicit declaration of function error for rpr0521 under some configs
When CONFIG_RPR0521 is enabled without CONFIG_IIO_TRIGGERED_BUFFER,
the build results in "implicit declaration of function" errors, e.g.,
drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
434 | iio_trigger_poll_chained(data->drdy_trigger0);
| ^~~~~~~~~~~~~~~~~~~~~~~~
This fix adds select dependencies to RPR0521's configuration declaration.
Signed-off-by: Paul Gazzillo <[email protected]>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216678
---
V1 -> V2: Cleaned up commit message per reviewer comments and added link
to bug report.
drivers/iio/light/Kconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
index 7cf6e8490123..0d4447df7200 100644
--- a/drivers/iio/light/Kconfig
+++ b/drivers/iio/light/Kconfig
@@ -293,6 +293,8 @@ config RPR0521
tristate "ROHM RPR0521 ALS and proximity sensor driver"
depends on I2C
select REGMAP_I2C
+ select IIO_BUFFER
+ select IIO_TRIGGERED_BUFFER
help
Say Y here if you want to build support for ROHM's RPR0521
ambient light and proximity sensor device.
--
2.25.1
On Thu, Nov 10, 2022 at 04:47:29PM -0500, Paul Gazzillo wrote:
> Fix an implicit declaration of function error for rpr0521 under some configs
>
> When CONFIG_RPR0521 is enabled without CONFIG_IIO_TRIGGERED_BUFFER,
> the build results in "implicit declaration of function" errors, e.g.,
> drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
> 'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
> 434 | iio_trigger_poll_chained(data->drdy_trigger0);
> | ^~~~~~~~~~~~~~~~~~~~~~~~
>
> This fix adds select dependencies to RPR0521's configuration declaration.
>
> Signed-off-by: Paul Gazzillo <[email protected]>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=216678
No need to create a bugzilla report on such tiny issues that do actually not
affect the working configurations.
FWIW,
Reviewed-by: Andy Shevchenko <[email protected]>
> ---
> V1 -> V2: Cleaned up commit message per reviewer comments and added link
> to bug report.
>
> drivers/iio/light/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
> index 7cf6e8490123..0d4447df7200 100644
> --- a/drivers/iio/light/Kconfig
> +++ b/drivers/iio/light/Kconfig
> @@ -293,6 +293,8 @@ config RPR0521
> tristate "ROHM RPR0521 ALS and proximity sensor driver"
> depends on I2C
> select REGMAP_I2C
> + select IIO_BUFFER
> + select IIO_TRIGGERED_BUFFER
> help
> Say Y here if you want to build support for ROHM's RPR0521
> ambient light and proximity sensor device.
> --
> 2.25.1
--
With Best Regards,
Andy Shevchenko
On 11/11/2022, Andy Shevchenko wrote:
> On Thu, Nov 10, 2022 at 04:47:29PM -0500, Paul Gazzillo wrote:
> > Fix an implicit declaration of function error for rpr0521 under some configs
> >
> > When CONFIG_RPR0521 is enabled without CONFIG_IIO_TRIGGERED_BUFFER,
> > the build results in "implicit declaration of function" errors, e.g.,
> > drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
> > 'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
> > 434 | iio_trigger_poll_chained(data->drdy_trigger0);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~
> >
> > This fix adds select dependencies to RPR0521's configuration declaration.
> >
> > Signed-off-by: Paul Gazzillo <[email protected]>
> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216678
>
> No need to create a bugzilla report on such tiny issues that do actually not
> affect the working configurations.
Understood. Thanks for your help!
>
> FWIW,
> Reviewed-by: Andy Shevchenko <[email protected]>
>
> > ---
> > V1 -> V2: Cleaned up commit message per reviewer comments and added link
> > to bug report.
> >
> > drivers/iio/light/Kconfig | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
> > index 7cf6e8490123..0d4447df7200 100644
> > --- a/drivers/iio/light/Kconfig
> > +++ b/drivers/iio/light/Kconfig
> > @@ -293,6 +293,8 @@ config RPR0521
> > tristate "ROHM RPR0521 ALS and proximity sensor driver"
> > depends on I2C
> > select REGMAP_I2C
> > + select IIO_BUFFER
> > + select IIO_TRIGGERED_BUFFER
> > help
> > Say Y here if you want to build support for ROHM's RPR0521
> > ambient light and proximity sensor device.
> > --
> > 2.25.1
>
> --
> With Best Regards,
> Andy Shevchenko
Best,
Paul
On Fri, 11 Nov 2022 10:25:39 -0500
Paul Gazzillo <[email protected]> wrote:
> On 11/11/2022, Andy Shevchenko wrote:
> > On Thu, Nov 10, 2022 at 04:47:29PM -0500, Paul Gazzillo wrote:
> > > Fix an implicit declaration of function error for rpr0521 under some configs
> > >
> > > When CONFIG_RPR0521 is enabled without CONFIG_IIO_TRIGGERED_BUFFER,
> > > the build results in "implicit declaration of function" errors, e.g.,
> > > drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
> > > 'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
> > > 434 | iio_trigger_poll_chained(data->drdy_trigger0);
> > > | ^~~~~~~~~~~~~~~~~~~~~~~~
> > >
> > > This fix adds select dependencies to RPR0521's configuration declaration.
> > >
> > > Signed-off-by: Paul Gazzillo <[email protected]>
> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216678
> >
> > No need to create a bugzilla report on such tiny issues that do actually not
> > affect the working configurations.
>
> Understood. Thanks for your help!
I wonder why it has taken so long for this build issue to get reported?
Ah well. This is missing a fixes tag. I added
Fixes: e12ffd241c00 ("iio: light: rpr0521 triggered buffer")
Applied to the fixes-togreg branch of iio.git.
Thanks,
Jonathan
>
> >
> > FWIW,
> > Reviewed-by: Andy Shevchenko <[email protected]>
> >
> > > ---
> > > V1 -> V2: Cleaned up commit message per reviewer comments and added link
> > > to bug report.
> > >
> > > drivers/iio/light/Kconfig | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
> > > index 7cf6e8490123..0d4447df7200 100644
> > > --- a/drivers/iio/light/Kconfig
> > > +++ b/drivers/iio/light/Kconfig
> > > @@ -293,6 +293,8 @@ config RPR0521
> > > tristate "ROHM RPR0521 ALS and proximity sensor driver"
> > > depends on I2C
> > > select REGMAP_I2C
> > > + select IIO_BUFFER
> > > + select IIO_TRIGGERED_BUFFER
> > > help
> > > Say Y here if you want to build support for ROHM's RPR0521
> > > ambient light and proximity sensor device.
> > > --
> > > 2.25.1
> >
> > --
> > With Best Regards,
> > Andy Shevchenko
>
> Best,
> Paul
On 11/12/2022, Jonathan Cameron wrote:
> On Fri, 11 Nov 2022 10:25:39 -0500
> Paul Gazzillo <[email protected]> wrote:
>
> > On 11/11/2022, Andy Shevchenko wrote:
> > > On Thu, Nov 10, 2022 at 04:47:29PM -0500, Paul Gazzillo wrote:
> > > > Fix an implicit declaration of function error for rpr0521 under some configs
> > > >
> > > > When CONFIG_RPR0521 is enabled without CONFIG_IIO_TRIGGERED_BUFFER,
> > > > the build results in "implicit declaration of function" errors, e.g.,
> > > > drivers/iio/light/rpr0521.c:434:3: error: implicit declaration of function
> > > > 'iio_trigger_poll_chained' [-Werror=implicit-function-declaration]
> > > > 434 | iio_trigger_poll_chained(data->drdy_trigger0);
> > > > | ^~~~~~~~~~~~~~~~~~~~~~~~
> > > >
> > > > This fix adds select dependencies to RPR0521's configuration declaration.
> > > >
> > > > Signed-off-by: Paul Gazzillo <[email protected]>
> > > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216678
> > >
> > > No need to create a bugzilla report on such tiny issues that do actually not
> > > affect the working configurations.
> >
> > Understood. Thanks for your help!
>
> I wonder why it has taken so long for this build issue to get reported?
>
There seem to be lots of combinations of configuration options that
don't get tested or even built (understandably, given the enormous
number of options), leaving Kconfig with an incomplete picture of
dependencies. There's just too many to test, though if users are only
using some predefined .config files (or testers are using only
allyesconfig) they may not encounter these corner cases that slip
through Kconfig (and maybe these cases aren't really very high
impact). Our team's been researching how to better test across
configurations; one of our tools for finding unmet Kconfig dependency
bugs (kismet) is now being run by Intel's kernel test robot, but we're
also working on how to improve run-time testing as well, and I ran
across a configuration that triggered this build error. In case
you're interested, here's our current tooling:
https://github.com/paulgazz/kmax
Let me know if you have any related painpoints that this work might
help with. I work in academia with funding that encourages
open-sourcing the results, so it's great to have real-world problems
that can provide a tangible benefit.
> Ah well. This is missing a fixes tag. I added
> Fixes: e12ffd241c00 ("iio: light: rpr0521 triggered buffer")
Thank you!
>
> Applied to the fixes-togreg branch of iio.git.
>
> Thanks,
>
> Jonathan
>
>
>
> >
> > >
> > > FWIW,
> > > Reviewed-by: Andy Shevchenko <[email protected]>
> > >
> > > > ---
> > > > V1 -> V2: Cleaned up commit message per reviewer comments and added link
> > > > to bug report.
> > > >
> > > > drivers/iio/light/Kconfig | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
> > > > index 7cf6e8490123..0d4447df7200 100644
> > > > --- a/drivers/iio/light/Kconfig
> > > > +++ b/drivers/iio/light/Kconfig
> > > > @@ -293,6 +293,8 @@ config RPR0521
> > > > tristate "ROHM RPR0521 ALS and proximity sensor driver"
> > > > depends on I2C
> > > > select REGMAP_I2C
> > > > + select IIO_BUFFER
> > > > + select IIO_TRIGGERED_BUFFER
> > > > help
> > > > Say Y here if you want to build support for ROHM's RPR0521
> > > > ambient light and proximity sensor device.
> > > > --
> > > > 2.25.1
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko
> >
> > Best,
> > Paul