mmc: rtsx: fix possible linking error if built-in
PATCH v2 1/1 mmc: rtsx: fix possible linking error if built-in
rtsx_usb_sdmmc module uses the LED classdev if available, but the code failed to consider the situation that it is built-in and the LED classdev is a module, leading to following linking error:
LD init/built-in.odrivers/built-in.o: In function `rtsx_usb_sdmmc_drv_remove':
rtsx_usb_sdmmc.c:(.text+0x2a018e): undefined reference to `led_classdev_unregister'drivers/built-in.o: In function `rtsx_usb_sdmmc_drv_probe':
rtsx_usb_sdmmc.c:(.text+0x2a197e): undefined reference to `led_classdev_register'
Fix by excluding such condition when defining macro RTSX_USB_USE_LEDS_CLASS.
---
v2 by Arnd: change the second #ifdef as well.
drivers/mmc/host/rtsx_usb_sdmmc.c +3 -2
@@ -34,7 +34,8 @@#include <linux/mfd/rtsx_usb.h> #include <asm/unaligned.h> -#if defined(CONFIG_LEDS_CLASS ) || defined(CONFIG_LEDS_CLASS_MODULE ) +#if defined(CONFIG_LEDS_CLASS ) || (defined(CONFIG_LEDS_CLASS_MODULE ) && \ + defined(CONFIG_MMC_REALTEK_USB_MODULE ))#include <linux/leds.h> #include <linux/workqueue.h> #define RTSX_USB_USE_LEDS_CLASS
@@ -59,7 +60,7 @@ struct rtsx_usb_sdmmc {unsigned char power_mode; -#if defined(CONFIG_LEDS_CLASS ) || defined(CONFIG_LEDS_CLASS_MODULE ) +#ifdef RTSX_USB_USE_LEDS_CLASS struct led_classdev led;char led_name[32 ];struct work_struct led_work;
Quoted 12 lines · Arnd Bergmann
rtsx_usb_sdmmcmodule uses the LED classdev if available, but the code failed to consider the situation that it is built-in and the LED classdev is a module, leading to following linking error:LD
init/built-in.odrivers/built-in.o: In function `rtsx_usb_sdmmc_drv_remove':
rtsx_usb_sdmmc.c:(.text+0x2a018e): undefined reference to `led_classdev_unregister'drivers/built-in.o: In function `rtsx_usb_sdmmc_drv_probe':
rtsx_usb_sdmmc.c:(.text+0x2a197e): undefined reference to `led_classdev_register'
Quoted 7 lines
Fix by excluding such condition when defining macro
RTSX_USB_USE_LEDS_CLASS.Signed-off-by Roger Tseng <[email protected]>Signed-off-by Arnd Bergmann <[email protected]>Acked-by Ulf Hansson <[email protected]>---
v2 by Arnd: change the second #ifdef as well.
Thanks Arnd, Roger - I will include this one in PR that I send to Chris in the next few days.
Kind regards
Ulf Hansson
Quoted 25 lines
drivers/mmc/host/rtsx_usb_sdmmc.c +3
-2@@ -34,7 +34,8 @@#include <linux/mfd/rtsx_usb.h> #include <asm/unaligned.h> -#if defined(CONFIG_LEDS_CLASS ) || defined(CONFIG_LEDS_CLASS_MODULE ) +#if defined(CONFIG_LEDS_CLASS ) || (defined(CONFIG_LEDS_CLASS_MODULE ) && \ + defined(CONFIG_MMC_REALTEK_USB_MODULE ))#include <linux/leds.h> #include <linux/workqueue.h> #define RTSX_USB_USE_LEDS_CLASS @@ -59,7 +60,7 @@ struct rtsx_usb_sdmmc {unsigned char power_mode; -#if defined(CONFIG_LEDS_CLASS ) || defined(CONFIG_LEDS_CLASS_MODULE ) +#ifdef RTSX_USB_USE_LEDS_CLASS struct led_classdev led;char led_name[32 ];struct work_struct led_work;