drivers/net/ethernet/intel/Kconfig | 1 + 1 file changed, 1 insertion(+)
From: Arnd Bergmann <arnd@arndb.de>
When IGC is built-in but LEDS_CLASS is a loadable module, there is
a link failure:
x86_64-linux-ld: drivers/net/ethernet/intel/igc/igc_leds.o: in function `igc_led_setup':
igc_leds.c:(.text+0x75c): undefined reference to `devm_led_classdev_register_ext'
Add another dependency that prevents this combination.
Fixes: ea578703b03d ("igc: Add support for LEDs on i225/i226")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/net/ethernet/intel/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
index af7fa6856707..6e7901e12699 100644
--- a/drivers/net/ethernet/intel/Kconfig
+++ b/drivers/net/ethernet/intel/Kconfig
@@ -372,6 +372,7 @@ config IGC
config IGC_LEDS
def_bool LEDS_TRIGGER_NETDEV
depends on IGC && LEDS_CLASS
+ depends on LEDS_CLASS=y || IGC=m
help
Optional support for controlling the NIC LED's with the netdev
LED trigger.
--
2.39.2
On 2/22/2024 2:02 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> When IGC is built-in but LEDS_CLASS is a loadable module, there is
> a link failure:
>
> x86_64-linux-ld: drivers/net/ethernet/intel/igc/igc_leds.o: in function `igc_led_setup':
> igc_leds.c:(.text+0x75c): undefined reference to `devm_led_classdev_register_ext'
>
> Add another dependency that prevents this combination.
>
> Fixes: ea578703b03d ("igc: Add support for LEDs on i225/i226")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> drivers/net/ethernet/intel/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
> index af7fa6856707..6e7901e12699 100644
> --- a/drivers/net/ethernet/intel/Kconfig
> +++ b/drivers/net/ethernet/intel/Kconfig
> @@ -372,6 +372,7 @@ config IGC
> config IGC_LEDS
> def_bool LEDS_TRIGGER_NETDEV
> depends on IGC && LEDS_CLASS
> + depends on LEDS_CLASS=y || IGC=m
I don't know kbuild that well, but would this cover LEDS_CLASS=n with IGC=m?
There are Similar checks in the file [1][2] that would transpose to
depends on IGC && LEDS_CLASS && !(IGC=y && LEDS_CLASS=m)
which should cover that and keep the checks in the file consistent. IMO
a little more readable as well.
Thanks,
Tony
[1]
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/Kconfig#L109
[2]
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/Kconfig#L161
> help
> Optional support for controlling the NIC LED's with the netdev
> LED trigger.
On Sat, Feb 24, 2024, at 00:15, Tony Nguyen wrote:
> On 2/22/2024 2:02 AM, Arnd Bergmann wrote:
>>
>> diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
>> index af7fa6856707..6e7901e12699 100644
>> --- a/drivers/net/ethernet/intel/Kconfig
>> +++ b/drivers/net/ethernet/intel/Kconfig
>> @@ -372,6 +372,7 @@ config IGC
>> config IGC_LEDS
>> def_bool LEDS_TRIGGER_NETDEV
>> depends on IGC && LEDS_CLASS
>> + depends on LEDS_CLASS=y || IGC=m
>
> I don't know kbuild that well, but would this cover LEDS_CLASS=n with IGC=m?
The 'depends on LEDS_CLASS' take care of that.
> There are Similar checks in the file [1][2] that would transpose to
> depends on IGC && LEDS_CLASS && !(IGC=y && LEDS_CLASS=m)
>
> which should cover that and keep the checks in the file consistent. IMO
> a little more readable as well.
Right, that works as well. I find the negative dependencies
slightly more confusing, they should do the same thing here.
Please apply whichever version makes most sense to you then.
Arnd
Dear Arnd,
Thank you for the patch.
Am 22.02.24 um 11:02 schrieb Arnd Bergmann:
> From: Arnd Bergmann <arnd@arndb.de>
>
> When IGC is built-in but LEDS_CLASS is a loadable module, there is
> a link failure:
>
> x86_64-linux-ld: drivers/net/ethernet/intel/igc/igc_leds.o: in function `igc_led_setup':
> igc_leds.c:(.text+0x75c): undefined reference to `devm_led_classdev_register_ext'
>
> Add another dependency that prevents this combination.
>
> Fixes: ea578703b03d ("igc: Add support for LEDs on i225/i226")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> drivers/net/ethernet/intel/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
> index af7fa6856707..6e7901e12699 100644
> --- a/drivers/net/ethernet/intel/Kconfig
> +++ b/drivers/net/ethernet/intel/Kconfig
> @@ -372,6 +372,7 @@ config IGC
> config IGC_LEDS
> def_bool LEDS_TRIGGER_NETDEV
> depends on IGC && LEDS_CLASS
> + depends on LEDS_CLASS=y || IGC=m
Should it be ordered as the line above?
> help
> Optional support for controlling the NIC LED's with the netdev
> LED trigger.
Kind regards,
Paul
On Thu Feb 22 2024, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> When IGC is built-in but LEDS_CLASS is a loadable module, there is
> a link failure:
>
> x86_64-linux-ld: drivers/net/ethernet/intel/igc/igc_leds.o: in function `igc_led_setup':
> igc_leds.c:(.text+0x75c): undefined reference to `devm_led_classdev_register_ext'
>
> Add another dependency that prevents this combination.
>
> Fixes: ea578703b03d ("igc: Add support for LEDs on i225/i226")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Ops, sorry. I tried to build all different combinations, but obviously
failed. Thanks for fixing this.
Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
© 2016 - 2026 Red Hat, Inc.