Re: [PATCH] efi: sysfb_efi: fix build when EFI is not set

Geert Uytterhoeven
2021-07-28T08:39:14Z

Hi Randy,

On Tue, Jul 27, 2021 at 7:06 AM Randy Dunlap <rdunlap@infradead.org> wrote:
> When # CONFIG_EFI is not set, there are 2 definitions of
> sysfb_apply_efi_quirks(). The stub from sysfb.h should be used
> and the __init function from sysfb_efi.c should not be used.
>
> ../drivers/firmware/efi/sysfb_efi.c:337:13: error: redefinition of ‘sysfb_apply_efi_quirks’
> __init void sysfb_apply_efi_quirks(struct platform_device *pd)
> ^~~~~~~~~~~~~~~~~~~~~~
> In file included from ../drivers/firmware/efi/sysfb_efi.c:26:0:
> ../include/linux/sysfb.h:65:20: note: previous definition of ‘sysfb_apply_efi_quirks’ was here
> static inline void sysfb_apply_efi_quirks(struct platform_device *pd)
> ^~~~~~~~~~~~~~~~~~~~~~
>
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>

Thanks for your patch!

> --- linext-20210726.orig/drivers/firmware/efi/sysfb_efi.c
> +++ linext-20210726/drivers/firmware/efi/sysfb_efi.c
> @@ -332,6 +332,7 @@ static const struct fwnode_operations ef
> .add_links = efifb_add_links,
> };
>
> +#ifdef CONFIG_EFI
> static struct fwnode_handle efifb_fwnode;
>
> __init void sysfb_apply_efi_quirks(struct platform_device *pd)
> @@ -354,3 +355,4 @@ __init void sysfb_apply_efi_quirks(struc
> pd->dev.fwnode = &efifb_fwnode;
> }
> }
> +#endif

How come you enter drivers/firmware/efi/ without CONFIG_EFI?

Oh:

drivers/firmware/Makefile:obj-$(CONFIG_EFI) += efi/
drivers/firmware/Makefile:obj-$(CONFIG_UEFI_CPER) += efi/

Looks like UEFI_CPER is not related to EFI at all (it's not set in
my arm64 config which has CONFIG_EFI=y). Perhaps it should be moved
to drivers/acpi/ instead?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds