Re: [PATCH v2] kbuild: check uniqueness of module names

From: Greg KH
Date: Fri May 17 2019 - 01:39:06 EST


On Fri, May 17, 2019 at 01:45:11PM +0900, Masahiro Yamada wrote:
> On Fri, May 17, 2019 at 1:29 PM Masahiro Yamada
> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
> >
> > In the recent build test of linux-next, Stephen saw a build error
> > caused by a broken .tmp_versions/*.mod file:
> >
> > https://lkml.org/lkml/2019/5/13/991
> >
> > drivers/net/phy/asix.ko and drivers/net/usb/asix.ko have the same
> > basename, and there is a race in generating .tmp_versions/asix.mod
> >
> > Kbuild has not checked this before, and it suddenly shows up with
> > obscure error message when this kind of race occurs.
> >
> > Non-unique module names cause various sort of problems, but it is
> > not trivial to catch them by eyes.
> >
> > Hence, this script.
> >
> > It checks not only real modules, but also built-in modules (i.e.
> > controlled by tristate CONFIG option, but currently compiled with =y).
> > Non-unique names for built-in modules also cause problems because
> > /sys/modules/ would fall over.
> >
> > I tested allmodconfig on the latest kernel, and it detected the
> > following:
> >
> > warning: same basename if the following are built as modules:
> > drivers/regulator/88pm800.ko
> > drivers/mfd/88pm800.ko
> > warning: same basename if the following are built as modules:
> > drivers/gpu/drm/bridge/adv7511/adv7511.ko
> > drivers/media/i2c/adv7511.ko
> > warning: same basename if the following are built as modules:
> > drivers/net/phy/asix.ko
> > drivers/net/usb/asix.ko
> > warning: same basename if the following are built as modules:
> > fs/coda/coda.ko
> > drivers/media/platform/coda/coda.ko
> > warning: same basename if the following are built as modules:
> > drivers/net/phy/realtek.ko
> > drivers/net/dsa/realtek.ko
> >
> > Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
> > ---
>
>
> One more question popped up.
>
> External modules are out of scope of the community,
> but it is possible that people create an external module
> that happens to have the same name as an upstream driver.

That is their bug, nothing we can do about that :)

thanks,

greg k-h