Message ID | 20240222100324.453272-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | igc: fix LEDS_CLASS dependency | expand |
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>
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 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
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.