diff mbox series

i2c: Use IS_REACHABLE() for substituting empty ACPI functions

Message ID 20240814121649.261693-1-rf@opensource.cirrus.com (mailing list archive)
State New, archived
Headers show
Series i2c: Use IS_REACHABLE() for substituting empty ACPI functions | expand

Commit Message

Richard Fitzgerald Aug. 14, 2024, 12:16 p.m. UTC
Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for:
    i2c_acpi_get_i2c_resource()
    i2c_acpi_client_count()
    i2c_acpi_find_bus_speed()
    i2c_acpi_new_device_by_fwnode()
    i2c_adapter *i2c_acpi_find_adapter_by_handle()
    i2c_acpi_waive_d0_probe()

commit f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI
functions") partially fixed this conditional to depend on CONFIG_I2C,
but used IS_ENABLED(), which is wrong since CONFIG_I2C is tristate.

CONFIG_ACPI is boolean but let's also change it to use IS_REACHABLE()
to future-proof it against becoming tristate.

Somehow despite testing various combinations of CONFIG_I2C and CONFIG_ACPI
we missed the combination CONFIG_I2C=m, CONFIG_ACPI=y.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/
---
 include/linux/i2c.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Takashi Iwai Aug. 14, 2024, 1:43 p.m. UTC | #1
On Wed, 14 Aug 2024 14:16:49 +0200,
Richard Fitzgerald wrote:
> 
> Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for:
>     i2c_acpi_get_i2c_resource()
>     i2c_acpi_client_count()
>     i2c_acpi_find_bus_speed()
>     i2c_acpi_new_device_by_fwnode()
>     i2c_adapter *i2c_acpi_find_adapter_by_handle()
>     i2c_acpi_waive_d0_probe()
> 
> commit f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI
> functions") partially fixed this conditional to depend on CONFIG_I2C,
> but used IS_ENABLED(), which is wrong since CONFIG_I2C is tristate.
> 
> CONFIG_ACPI is boolean but let's also change it to use IS_REACHABLE()
> to future-proof it against becoming tristate.
> 
> Somehow despite testing various combinations of CONFIG_I2C and CONFIG_ACPI
> we missed the combination CONFIG_I2C=m, CONFIG_ACPI=y.
> 
> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
> Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/

I suppose Wolfram will take this?

Reviewed-by: Takashi Iwai <tiwai@suse.de>


thanks,

Takashi
Wolfram Sang Aug. 14, 2024, 2 p.m. UTC | #2
> > Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
> > Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
> > Reported-by: kernel test robot <lkp@intel.com>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/
> 
> I suppose Wolfram will take this?
> 
> Reviewed-by: Takashi Iwai <tiwai@suse.de>

Yes, for rc4. I wonder why buildbot did not spot it for the branch I
submitted to rc3. Things happen, I guess...
Takashi Iwai Aug. 14, 2024, 2:07 p.m. UTC | #3
On Wed, 14 Aug 2024 16:00:24 +0200,
Wolfram Sang wrote:
> 
> 
> > > Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
> > > Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
> > > Reported-by: kernel test robot <lkp@intel.com>
> > > Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/
> > 
> > I suppose Wolfram will take this?
> > 
> > Reviewed-by: Takashi Iwai <tiwai@suse.de>
> 
> Yes, for rc4. I wonder why buildbot did not spot it for the branch I
> submitted to rc3. Things happen, I guess...

Maybe because there was no user that can hit with randconfig.
It was a preliminary fix for the change I recently put after the rc3
release, and now it surfaced.


thanks,

Takashi
Wolfram Sang Aug. 14, 2024, 3:41 p.m. UTC | #4
> It was a preliminary fix for the change I recently put after the rc3
> release, and now it surfaced.

Ah, that's an explanation. Thanks!
Wolfram Sang Aug. 14, 2024, 5:50 p.m. UTC | #5
On Wed, Aug 14, 2024 at 01:16:49PM +0100, Richard Fitzgerald wrote:
> Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for:
>     i2c_acpi_get_i2c_resource()
>     i2c_acpi_client_count()
>     i2c_acpi_find_bus_speed()
>     i2c_acpi_new_device_by_fwnode()
>     i2c_adapter *i2c_acpi_find_adapter_by_handle()
>     i2c_acpi_waive_d0_probe()
> 
> commit f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI
> functions") partially fixed this conditional to depend on CONFIG_I2C,
> but used IS_ENABLED(), which is wrong since CONFIG_I2C is tristate.
> 
> CONFIG_ACPI is boolean but let's also change it to use IS_REACHABLE()
> to future-proof it against becoming tristate.
> 
> Somehow despite testing various combinations of CONFIG_I2C and CONFIG_ACPI
> we missed the combination CONFIG_I2C=m, CONFIG_ACPI=y.
> 
> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
> Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/

Applied to for-current, thanks!
diff mbox series

Patch

diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 7eedd0c662da..377def497298 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -1066,7 +1066,7 @@  static inline int of_i2c_get_board_info(struct device *dev,
 struct acpi_resource;
 struct acpi_resource_i2c_serialbus;
 
-#if IS_ENABLED(CONFIG_ACPI) && IS_ENABLED(CONFIG_I2C)
+#if IS_REACHABLE(CONFIG_ACPI) && IS_REACHABLE(CONFIG_I2C)
 bool i2c_acpi_get_i2c_resource(struct acpi_resource *ares,
 			       struct acpi_resource_i2c_serialbus **i2c);
 int i2c_acpi_client_count(struct acpi_device *adev);