On Wed, Jun 4, 2025 at 8:26 PM Alexey Gladkov <legion@xxxxxxxxxx> 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-masahiroy@xxxxxxxxxx/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