Re: [PATCH 01/18] block/rnbd: fix mixed module-builtin object

From: Masahiro Yamada
Date: Tue Nov 22 2022 - 01:00:33 EST


On Tue, Nov 22, 2022 at 6:18 AM Andrew Davis <afd@xxxxxx> wrote:
>
> On 11/19/22 5:04 PM, Alexander Lobakin wrote:
> > From: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> >
> > With CONFIG_BLK_DEV_RNBD_CLIENT=m and CONFIG_BLK_DEV_RNBD_SERVER=y
> > (or vice versa), rnbd-common.o is linked to a module and also to
> > vmlinux even though CFLAGS are different between builtins and modules.
> >
> > This is the same situation as fixed by commit 637a642f5ca5 ("zstd:
> > Fixing mixed module-builtin objects").
> >
> > Turn rnbd_access_mode_str() into an inline function.
> >
>
> Why inline? All you should need is "static" to keep these internal to
> each compilation unit. Inline also bloats the object files when the
> function is called from multiple places. Let the compiler decide when
> to inline.
>
> Andrew


Since it is a header file.


In header files, "static inline" should be always used.
Never "static".


If a header is included from a C file and there is a function
that is not used from that C file,
"static" would emit -Wunused-function warning
(-Wunused-function is enabled by -Wall, which is the case
for the kernel build).





--
Best Regards
Masahiro Yamada