Re: [PATCH] firmware: remove old CONFIG_FW_LOADER_MODULE test

From: Luis Chamberlain
Date: Tue Jan 11 2022 - 14:00:25 EST


On Thu, Jan 06, 2022 at 03:44:08PM +0100, Greg Kroah-Hartman wrote:
> On Thu, Dec 30, 2021 at 10:39:32AM +0100, Greg Kroah-Hartman wrote:
> > The CONFIG_FW_LOADER_MODULE check in firmware.h is very obsolete given
> > that this symbol went away decades ago, so it should be removed.
> >
> > Reported-by: Borislav Petkov <bp@xxxxxxxxx>
> > Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> > include/linux/firmware.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/linux/firmware.h b/include/linux/firmware.h
> > index 3b057dfc8284..0b1c4d9c5465 100644
> > --- a/include/linux/firmware.h
> > +++ b/include/linux/firmware.h
> > @@ -34,7 +34,7 @@ static inline bool firmware_request_builtin(struct firmware *fw,
> > }
> > #endif
> >
> > -#if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE))
> > +#if defined(CONFIG_FW_LOADER)
> > int request_firmware(const struct firmware **fw, const char *name,
> > struct device *device);
> > int firmware_request_nowarn(const struct firmware **fw, const char *name,
> > --
> > 2.34.1
> >
>
> Odd, 0-day reports a bunch of warnings with this change:
>
> drivers/base/firmware_loader/main.c:1054:1: error: redefinition of 'request_firmware_nowait'
> drivers/base/firmware_loader/main.c:811:1: error: redefinition of 'request_firmware'
> drivers/base/firmware_loader/main.c:838:5: error: redefinition of 'firmware_request_nowarn'
> drivers/base/firmware_loader/main.c:863:5: error: redefinition of 'request_firmware_direct'
> drivers/base/firmware_loader/main.c:887:5: error: redefinition of 'firmware_request_platform'
> drivers/base/firmware_loader/main.c:941:1: error: redefinition of 'request_firmware_into_buf'
> drivers/base/firmware_loader/main.c:970:1: error: redefinition of 'request_partial_firmware_into_buf'
> drivers/base/firmware_loader/main.c:992:6: error: redefinition of 'release_firmware'
>
>
> Luis, any ideas?

Yeah I think this comes from the fact that modules get a respective
_MODULE define in the generated file
include/generated/autoconf.h

For example:

vagrant@kdevops-dev /data/linux-next (git::20211203-umh-fix-exitcodes)$
grep CONFIG_CRC8 .config
CONFIG_CRC8=m
vagrant@kdevops-dev /data/linux-next (git::20211203-umh-fix-exitcodes)$
grep CONFIG_CRC8 include/generated/autoconf.h
#define CONFIG_CRC8_MODULE 1

So I think the above was put in place to ask if its built-in or a
module.

Luis