RE: [PATCH] kbuild: Modify default INSTALL_MOD_DIR from extra to updates

From: Dan Williams
Date: Wed Dec 14 2022 - 18:30:01 EST


Luis Chamberlain wrote:
> The default INSTALL_MOD_DIR of using the /lib/modules/$(uname -r)/extra
> directory for external modules assumes distributions will have something
> like /etc/depmod.d/dist.conf with:
>
> search updates extra built-in
>
> However, only some Red Hat release have and use the extra stuff for
> years now. Meanwhile, the depmod.c tool in kmod has *forever* used
> the "updates" directory as part of the search path by default *if*
> your distribution does not have any depmod.d configuration.
>
> If you compile and install an external module today, even upstream
> kernel mock drivers (tools/testing/cxl) the modules_install target
> will pick up the new drivers but will not allow override of drivers
> from updates to override built-in ones.
>
> Since module-init-tools was deprecated over 11 years ago and now kmod
> has since its inception used the "updates" directory as part of its
> default search path to allow overrides, and since the "extra" stuff
> was in practice only used by Red Hat stuff, use the more distro
> agnostic override path "updates" to allow external modules to
> also override proper production kernel modules.
>
> This would allow mocking drivers tools to not have to muck with
> depmod.d config files or assume that your distro will have extra
> on a configuration file over built-in.
>
> With today's default you end up actually *crashing* Linux when
> trying to load cxl_test with the default "extra" [0] directory being
> used. This fixes that and allows other mocking drivers to do
> less work.
>
> [0] https://lkml.kernel.org/r/20221209062919.1096779-1-mcgrof@xxxxxxxxxx
> Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>

Thanks for digging into the history here Luis!

Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>