Hi all,
Today's linux-next merge of the sysctl tree got a conflict in:
include/linux/module.h
between commits:
6633d3a45a8c ("module: move 'struct module_use' to internal.h")
a55842991352 ("module: make structure definitions always visible")
from the modules tree and commit:
6bb37af62634 ("module: Move modprobe_path and modules_disabled ctl_tables into the module subsys")
from the sysctl tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
--
Cheers,
Stephen Rothwell
diff --cc include/linux/module.h
index 3b665cb0cabe,e93cdb92ad92..000000000000
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@@ -584,17 -608,6 +584,16 @@@ struct module
#define MODULE_ARCH_INIT {}
#endif
+#ifdef CONFIG_MODULES
+
- extern int modules_disabled; /* for sysctl */
+/* Get/put a kernel symbol (calls must be symmetric) */
+void *__symbol_get(const char *symbol);
+void *__symbol_get_gpl(const char *symbol);
+#define symbol_get(x) ({ \
+ static const char __notrim[] \
+ __used __section(".no_trim_symbol") = __stringify(x); \
+ (typeof(&x))(__symbol_get(__stringify(x))); })
+
#ifndef HAVE_ARCH_KALLSYMS_SYMBOL_VALUE
static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym)
{
Hi all, On Mon, 14 Jul 2025 17:59:16 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote: > > Today's linux-next merge of the sysctl tree got a conflict in: > > include/linux/module.h > > between commits: > > 6633d3a45a8c ("module: move 'struct module_use' to internal.h") > a55842991352 ("module: make structure definitions always visible") > > from the modules tree and commit: > > 6bb37af62634 ("module: Move modprobe_path and modules_disabled ctl_tables into the module subsys") > > from the sysctl tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. > > > diff --cc include/linux/module.h > index 3b665cb0cabe,e93cdb92ad92..000000000000 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@@ -584,17 -608,6 +584,16 @@@ struct module > #define MODULE_ARCH_INIT {} > #endif > > +#ifdef CONFIG_MODULES > + > - extern int modules_disabled; /* for sysctl */ > +/* Get/put a kernel symbol (calls must be symmetric) */ > +void *__symbol_get(const char *symbol); > +void *__symbol_get_gpl(const char *symbol); > +#define symbol_get(x) ({ \ > + static const char __notrim[] \ > + __used __section(".no_trim_symbol") = __stringify(x); \ > + (typeof(&x))(__symbol_get(__stringify(x))); }) > + > #ifndef HAVE_ARCH_KALLSYMS_SYMBOL_VALUE > static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym) > { This is now a conflict between the modules tree and Linus' tree. -- Cheers, Stephen Rothwell
On Thu, Jul 31, 2025 at 11:02:49AM +1000, Stephen Rothwell wrote: > Hi all, > > On Mon, 14 Jul 2025 17:59:16 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote: > > ... > > > > diff --cc include/linux/module.h > > index 3b665cb0cabe,e93cdb92ad92..000000000000 > > --- a/include/linux/module.h > > +++ b/include/linux/module.h > > @@@ -584,17 -608,6 +584,16 @@@ struct module > > #define MODULE_ARCH_INIT {} > > #endif > > > > +#ifdef CONFIG_MODULES > > + > > - extern int modules_disabled; /* for sysctl */ > > +/* Get/put a kernel symbol (calls must be symmetric) */ > > +void *__symbol_get(const char *symbol); > > +void *__symbol_get_gpl(const char *symbol); > > +#define symbol_get(x) ({ \ > > + static const char __notrim[] \ > > + __used __section(".no_trim_symbol") = __stringify(x); \ > > + (typeof(&x))(__symbol_get(__stringify(x))); }) > > + > > #ifndef HAVE_ARCH_KALLSYMS_SYMBOL_VALUE > > static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym) > > { > > This is now a conflict between the modules tree and Linus' tree. That makes sense. The sysctl PR was merged at the end of July. It should be fixed in the same way as described in this thread. @Daniel: Ping me if you need any feedback from my part. Best -- Joel Granados
On 7/31/2025 3:02 AM, Stephen Rothwell wrote: > Hi all, > > On Mon, 14 Jul 2025 17:59:16 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote: >> >> Today's linux-next merge of the sysctl tree got a conflict in: >> >> include/linux/module.h >> >> between commits: >> >> 6633d3a45a8c ("module: move 'struct module_use' to internal.h") >> a55842991352 ("module: make structure definitions always visible") >> >> from the modules tree and commit: >> >> 6bb37af62634 ("module: Move modprobe_path and modules_disabled ctl_tables into the module subsys") >> >> from the sysctl tree. >> >> I fixed it up (see below) and can carry the fix as necessary. This >> is now fixed as far as linux-next is concerned, but any non trivial >> conflicts should be mentioned to your upstream maintainer when your tree >> is submitted for merging. You may also want to consider cooperating >> with the maintainer of the conflicting tree to minimise any particularly >> complex conflicts. >> >> >> diff --cc include/linux/module.h >> index 3b665cb0cabe,e93cdb92ad92..000000000000 >> --- a/include/linux/module.h >> +++ b/include/linux/module.h >> @@@ -584,17 -608,6 +584,16 @@@ struct module >> #define MODULE_ARCH_INIT {} >> #endif >> >> +#ifdef CONFIG_MODULES >> + >> - extern int modules_disabled; /* for sysctl */ >> +/* Get/put a kernel symbol (calls must be symmetric) */ >> +void *__symbol_get(const char *symbol); >> +void *__symbol_get_gpl(const char *symbol); >> +#define symbol_get(x) ({ \ >> + static const char __notrim[] \ >> + __used __section(".no_trim_symbol") = __stringify(x); \ >> + (typeof(&x))(__symbol_get(__stringify(x))); }) >> + >> #ifndef HAVE_ARCH_KALLSYMS_SYMBOL_VALUE >> static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym) >> { > > This is now a conflict between the modules tree and Linus' tree. Thanks for the heads-up. modules tree is now rebased on top of Linus's tree with the conflict solved.
On Mon, Jul 14, 2025 at 05:59:16PM +1000, Stephen Rothwell wrote: > Hi all, > > Today's linux-next merge of the sysctl tree got a conflict in: > > include/linux/module.h > > between commits: > > 6633d3a45a8c ("module: move 'struct module_use' to internal.h") > a55842991352 ("module: make structure definitions always visible") > > from the modules tree and commit: > > 6bb37af62634 ("module: Move modprobe_path and modules_disabled ctl_tables into the module subsys") > > from the sysctl tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. Quickly reviewed this with Daniel Gomez <da.gomez@samsung.com> one of the modules maintainers and this solution is the correct one. Best > > -- > Cheers, > Stephen Rothwell > > diff --cc include/linux/module.h > index 3b665cb0cabe,e93cdb92ad92..000000000000 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@@ -584,17 -608,6 +584,16 @@@ struct module > #define MODULE_ARCH_INIT {} > #endif > > +#ifdef CONFIG_MODULES > + > - extern int modules_disabled; /* for sysctl */ > +/* Get/put a kernel symbol (calls must be symmetric) */ > +void *__symbol_get(const char *symbol); > +void *__symbol_get_gpl(const char *symbol); > +#define symbol_get(x) ({ \ > + static const char __notrim[] \ > + __used __section(".no_trim_symbol") = __stringify(x); \ > + (typeof(&x))(__symbol_get(__stringify(x))); }) > + > #ifndef HAVE_ARCH_KALLSYMS_SYMBOL_VALUE > static inline unsigned long kallsyms_symbol_value(const Elf_Sym *sym) > { -- Joel Granados
© 2016 - 2025 Red Hat, Inc.