Re: [PATCH] misc: habanalabs: avoid HWMON dependency
From: Oded Gabbay
Date: Mon Mar 04 2019 - 15:21:54 EST
On Mon, Mar 4, 2019 at 10:04 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> When CONFIG_HWMON is disabled, we currently get a link error for this driver:
>
> ERROR: "hwmon_device_unregister" [drivers/misc/habanalabs/habanalabs.ko] undefined!
> ERROR: "hwmon_device_register_with_info" [drivers/misc/habanalabs/habanalabs.ko] undefined!
>
> As the hardware monitoring is not a required part of the functionality,
> make it possible to compile without HWMON by ignoring all that functionality
> depending on the configuration.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/misc/habanalabs/hwmon.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/misc/habanalabs/hwmon.c b/drivers/misc/habanalabs/hwmon.c
> index 77facd25c4a2..933746639831 100644
> --- a/drivers/misc/habanalabs/hwmon.c
> +++ b/drivers/misc/habanalabs/hwmon.c
> @@ -423,7 +423,7 @@ int hl_hwmon_init(struct hl_device *hdev)
> struct device *dev = hdev->pdev ? &hdev->pdev->dev : hdev->dev;
> int rc;
>
> - if ((hdev->hwmon_initialized) || !(hdev->fw_loading))
> + if (!IS_ENABLED(CONFIG_HWMON) || (hdev->hwmon_initialized) || !(hdev->fw_loading))
> return 0;
>
> if (hdev->hl_chip_info->info) {
> @@ -451,7 +451,7 @@ int hl_hwmon_init(struct hl_device *hdev)
>
> void hl_hwmon_fini(struct hl_device *hdev)
> {
> - if (!hdev->hwmon_initialized)
> + if (!IS_ENABLED(CONFIG_HWMON) || !hdev->hwmon_initialized)
> return;
>
> hwmon_device_unregister(hdev->hwmon_dev);
> --
> 2.20.0
>
Hi Arnd,
I sent a patch to gkh to fix this last week (and he merged that into
his tree), but I took a different approach of selecting HWMON in
kconfig (with an added depends on of HAS_IOMEM to prevent dependency
breakage).
I don't really want the driver to load without HWMON support. I took
the example from AMD's amdgpu driver which does the same thing.
Thanks,
Oded