On Wed, Jun 4, 2025 at 8:26 PM Alexey Gladkov <leg...@kernel.org> wrote:
>
> On Tue, Jun 03, 2025 at 01:18:25AM +0900, Masahiro Yamada wrote:
> > > > > Before these patches this was not a problem as non-unique characters 
> > > > > are
> > > > > in separate object files when the module is compiled separately.
> > > > >
> > > > > But when the modules are compiled into the kernel, there is a symbol
> > > > > conflict when linking vmlinuz. We have modules that export multiple 
> > > > > device
> > > > > tables from different object files.
> > > >
> > > > This is because the __mod_device_table__* symbols are global, but
> > > > I suspect they do not need to be.
> > > >
> > > > Let's test this
> > > > https://lore.kernel.org/lkml/20250602105539.392362-1-masahi...@kernel.org/T/#u
> > >
> > > I tested this patch with the config:
> > >
> > > make allmodconfig
> > > make mod2yesconfig
> > >
> > > and it works.
> >
> > Good.
> > Then, __COUNTER__ is unnecessary.
>
> I didn't immediately notice. The patch you suggested works, but these
> symbols remain in System.map and it seems in vmlinuz.
>

Ah, yes, if your patch set is applied.

Currently, MODULE_DEVICE_TABLE() is no-op in vmlinux.

This makes me realize that your v3 4/6
increased the vmlinux image, as MODULE_DEVICE_TABLE()
is kept for modpost.


-- 
Best Regards
Masahiro Yamada

Reply via email to