linux-next: manual merge of the sysctl tree with the modules tree

Stephen Rothwell posted 1 patch 2 months, 3 weeks ago
linux-next: manual merge of the sysctl tree with the modules tree
Posted by Stephen Rothwell 2 months, 3 weeks ago
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)
  {
Re: linux-next: manual merge of the sysctl tree with the modules tree
Posted by Stephen Rothwell 2 months, 1 week ago
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
Re: linux-next: manual merge of the sysctl tree with the modules tree
Posted by Joel Granados 2 months ago
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
Re: linux-next: manual merge of the sysctl tree with the modules tree
Posted by Daniel Gomez 2 months, 1 week ago
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.
Re: linux-next: manual merge of the sysctl tree with the modules tree
Posted by Joel Granados 2 months, 2 weeks ago
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