wifi: rtl8xxxu: add LEDS_CLASS dependency

Message ID 20230217095910.2480356-1-arnd@kernel.org
State New
Headers
Series wifi: rtl8xxxu: add LEDS_CLASS dependency |

Commit Message

Arnd Bergmann Feb. 17, 2023, 9:59 a.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

rtl8xxxu now unconditionally uses LEDS_CLASS, so a Kconfig dependency
is required to avoid link errors:

aarch64-linux-ld: drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.o: in function `rtl8xxxu_disconnect':
rtl8xxxu_core.c:(.text+0x730): undefined reference to `led_classdev_unregister'

ERROR: modpost: "led_classdev_unregister" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!
ERROR: modpost: "led_classdev_register_ext" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!

Fixes: 3be01622995b ("wifi: rtl8xxxu: Register the LED and make it blink")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Ping-Ke Shih Feb. 17, 2023, 11:50 a.m. UTC | #1
On Fri, 2023-02-17 at 10:59 +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> rtl8xxxu now unconditionally uses LEDS_CLASS, so a Kconfig dependency
> is required to avoid link errors:
> 
> aarch64-linux-ld: drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.o: in function
> `rtl8xxxu_disconnect':
> rtl8xxxu_core.c:(.text+0x730): undefined reference to `led_classdev_unregister'
> 
> ERROR: modpost: "led_classdev_unregister" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko]
> undefined!
> ERROR: modpost: "led_classdev_register_ext" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko]
> undefined!
> 
> Fixes: 3be01622995b ("wifi: rtl8xxxu: Register the LED and make it blink")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
> b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
> index 091d3ad98093..2eed20b0988c 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
> @@ -5,6 +5,7 @@
>  config RTL8XXXU
>         tristate "Realtek 802.11n USB wireless chips support"
>         depends on MAC80211 && USB
> +       depends on LEDS_CLASS

With 'depends on', this item will disappear if LEDS_CLASS isn't selected.
Would it use 'select' instead?

Ping-Ke
  
Arnd Bergmann Feb. 17, 2023, 12:17 p.m. UTC | #2
On Fri, Feb 17, 2023, at 12:50, Ping-Ke Shih wrote:
> On Fri, 2023-02-17 at 10:59 +0100, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
>> b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
>> index 091d3ad98093..2eed20b0988c 100644
>> --- a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
>> +++ b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
>> @@ -5,6 +5,7 @@
>>  config RTL8XXXU
>>         tristate "Realtek 802.11n USB wireless chips support"
>>         depends on MAC80211 && USB
>> +       depends on LEDS_CLASS
>
> With 'depends on', this item will disappear if LEDS_CLASS isn't selected.
> Would it use 'select' instead?

In general, 'select' is for hidden symbols, not user visible ones.
The main problem is mixing 'select' and 'depends on', as this
leads to circular dependencies. With LEDS_CLASS there is unfortunately
already a mix of the two that can be hard to clean up, but
'depends on' is usually the safer bet to avoid causing more
problems.

For wireless drivers, you can also use MAC80211_LEDS to abstract
some of this, but that is probably a larger rework.


    Arnd
  
Kalle Valo Feb. 17, 2023, 4:31 p.m. UTC | #3
Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> rtl8xxxu now unconditionally uses LEDS_CLASS, so a Kconfig dependency
> is required to avoid link errors:
> 
> aarch64-linux-ld: drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.o: in function `rtl8xxxu_disconnect':
> rtl8xxxu_core.c:(.text+0x730): undefined reference to `led_classdev_unregister'
> 
> ERROR: modpost: "led_classdev_unregister" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!
> ERROR: modpost: "led_classdev_register_ext" [drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko] undefined!
> 
> Fixes: 3be01622995b ("wifi: rtl8xxxu: Register the LED and make it blink")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Patch applied to wireless-next.git, thanks.

38ae31922969 wifi: rtl8xxxu: add LEDS_CLASS dependency
  

Patch

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
index 091d3ad98093..2eed20b0988c 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
+++ b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
@@ -5,6 +5,7 @@ 
 config RTL8XXXU
 	tristate "Realtek 802.11n USB wireless chips support"
 	depends on MAC80211 && USB
+	depends on LEDS_CLASS
 	help
 	  This is an alternative driver for various Realtek RTL8XXX
 	  parts written to utilize the Linux mac80211 stack.