[PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard

Karl Mehltretter posted 1 patch 1 month, 2 weeks ago
There is a newer version of this series
Documentation/admin-guide/sysctl/kernel.rst | 2 +-
kernel/entry/syscall_user_dispatch.c        | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
[PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Karl Mehltretter 1 month, 2 weeks ago
sysctl-next removes CONFIG_PROC_SYSCTL because it mirrors CONFIG_SYSCTL.
When combined with the syscall user dispatch sysctl in linux-next, the
stale guard prevents registration of kernel.syscall_user_dispatch.

syscall_user_dispatch_allowed defaults to true. SUD therefore remains
available, but administrators cannot disable new activations.

Use CONFIG_SYSCTL for the guard and documentation.

Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
Assisted-by: Codex:gpt-5.6-sol
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
The conflicting sysctl-next commit is currently:

  8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL")

This is a cross-tree integration fix intended for the tip tree. It has
no functional effect in tip/master, but restores the sysctl when
combined with sysctl-next.

Verified in linux-next with an x86_64 object build using
CONFIG_SYSCALL_USER_DISPATCH=y and CONFIG_SYSCTL=y.

 Documentation/admin-guide/sysctl/kernel.rst | 2 +-
 kernel/entry/syscall_user_dispatch.c        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
index b6328cd0f43e9..ffea61d448ebb 100644
--- a/Documentation/admin-guide/sysctl/kernel.rst
+++ b/Documentation/admin-guide/sysctl/kernel.rst
@@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
   ==  ===================================================================
 
 Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
-and ``CONFIG_PROC_SYSCTL``.
+and ``CONFIG_SYSCTL``.
 
 
 sysctl_writes_strict
diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
index 2002c7aae4358..59c861866941d 100644
--- a/kernel/entry/syscall_user_dispatch.c
+++ b/kernel/entry/syscall_user_dispatch.c
@@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
 					      (char __user *)(uintptr_t)cfg.selector);
 }
 
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
 static const struct ctl_table syscall_user_dispatch_sysctls[] = {
 	{
 		.procname	= "syscall_user_dispatch",
@@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
 	return 0;
 }
 late_initcall(syscall_user_dispatch_sysctl_init);
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */

base-commit: 98292902c7108717c4f4bea7226520b336f9a8bc
-- 
2.53.0
Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Joel Granados 3 weeks ago
On Thu, Aug 13, 2026 at 08:20:39AM +0200, Karl Mehltretter wrote:
> sysctl-next removes CONFIG_PROC_SYSCTL because it mirrors CONFIG_SYSCTL.
> When combined with the syscall user dispatch sysctl in linux-next, the
> stale guard prevents registration of kernel.syscall_user_dispatch.
> 
> syscall_user_dispatch_allowed defaults to true. SUD therefore remains
> available, but administrators cannot disable new activations.
> 
> Use CONFIG_SYSCTL for the guard and documentation.
> 
> Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
> Assisted-by: Codex:gpt-5.6-sol
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> ---
> The conflicting sysctl-next commit is currently:
> 
>   8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL")
> 
> This is a cross-tree integration fix intended for the tip tree. It has
> no functional effect in tip/master, but restores the sysctl when
> combined with sysctl-next.
> 
> Verified in linux-next with an x86_64 object build using
> CONFIG_SYSCALL_USER_DISPATCH=y and CONFIG_SYSCTL=y.
> 
>  Documentation/admin-guide/sysctl/kernel.rst | 2 +-
>  kernel/entry/syscall_user_dispatch.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
> index b6328cd0f43e9..ffea61d448ebb 100644
> --- a/Documentation/admin-guide/sysctl/kernel.rst
> +++ b/Documentation/admin-guide/sysctl/kernel.rst
> @@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
>    ==  ===================================================================
>  
>  Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
> -and ``CONFIG_PROC_SYSCTL``.
> +and ``CONFIG_SYSCTL``.
>  
>  
>  sysctl_writes_strict
> diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
> index 2002c7aae4358..59c861866941d 100644
> --- a/kernel/entry/syscall_user_dispatch.c
> +++ b/kernel/entry/syscall_user_dispatch.c
> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
>  					      (char __user *)(uintptr_t)cfg.selector);
>  }
>  
> -#ifdef CONFIG_PROC_SYSCTL
> +#ifdef CONFIG_SYSCTL
>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>  	{
>  		.procname	= "syscall_user_dispatch",
> @@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
>  	return 0;
>  }
>  late_initcall(syscall_user_dispatch_sysctl_init);
> -#endif /* CONFIG_PROC_SYSCTL */
> +#endif /* CONFIG_SYSCTL */
> 
> base-commit: 98292902c7108717c4f4bea7226520b336f9a8bc
> -- 
> 2.53.0

I don't see this in 7.3-rc2. Did we miss pushing this in? At the moment
I see that syscall_user_dispatch.c is still using CONFIG_PROC_SYSCTL
which is never defined anywhere.

Two questions: 

1. Did I miss anything. Is this not supposed to be upstreamed at the
   end?

2. Anyone opposed to me sending this upstream?

Best












Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Karl Mehltretter 3 weeks ago
Am Mo., 7. Sept. 2026 um 12:37 Uhr schrieb Joel Granados
<joel.granados@kernel.org>:
> I don't see this in 7.3-rc2. Did we miss pushing this in? At the moment
> I see that syscall_user_dispatch.c is still using CONFIG_PROC_SYSCTL
> which is never defined anywhere.
>
> Two questions:
>
> 1. Did I miss anything. Is this not supposed to be upstreamed at the
>    end?

I already sent an updated v2 rebased on mainline with an adjusted
commit message:

https://lore.kernel.org/r/20260822072325.51994-1-kmehltretter@gmail.com/

Thanks,
Karl
Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Joel Granados 3 weeks ago
On Mon, Sep 07, 2026 at 01:17:02PM +0200, Karl Mehltretter wrote:
> Am Mo., 7. Sept. 2026 um 12:37 Uhr schrieb Joel Granados
> <joel.granados@kernel.org>:
> > I don't see this in 7.3-rc2. Did we miss pushing this in? At the moment
> > I see that syscall_user_dispatch.c is still using CONFIG_PROC_SYSCTL
> > which is never defined anywhere.
> >
> > Two questions:
> >
> > 1. Did I miss anything. Is this not supposed to be upstreamed at the
> >    end?
> 
> I already sent an updated v2 rebased on mainline with an adjusted
> commit message:
> 
> https://lore.kernel.org/r/20260822072325.51994-1-kmehltretter@gmail.com/

I still have the same question. I don't see it upstream. Why is it not
there? Is it going to be pushed as a fix by someone? or is it still
looking for a way upstream?

Best

Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Joel Granados 1 month, 2 weeks ago
On Thu, Aug 13, 2026 at 08:20:39AM +0200, Karl Mehltretter wrote:
> sysctl-next removes CONFIG_PROC_SYSCTL because it mirrors CONFIG_SYSCTL.
> When combined with the syscall user dispatch sysctl in linux-next, the
> stale guard prevents registration of kernel.syscall_user_dispatch.
> 
> syscall_user_dispatch_allowed defaults to true. SUD therefore remains
> available, but administrators cannot disable new activations.
> 
> Use CONFIG_SYSCTL for the guard and documentation.
> 
> Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
> Assisted-by: Codex:gpt-5.6-sol
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> ---
> The conflicting sysctl-next commit is currently:
> 
>   8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL")
> 
> This is a cross-tree integration fix intended for the tip tree. It has
> no functional effect in tip/master, but restores the sysctl when
> combined with sysctl-next.
> 
> Verified in linux-next with an x86_64 object build using
> CONFIG_SYSCALL_USER_DISPATCH=y and CONFIG_SYSCTL=y.
> 
>  Documentation/admin-guide/sysctl/kernel.rst | 2 +-
>  kernel/entry/syscall_user_dispatch.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
> index b6328cd0f43e9..ffea61d448ebb 100644
> --- a/Documentation/admin-guide/sysctl/kernel.rst
> +++ b/Documentation/admin-guide/sysctl/kernel.rst
> @@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
>    ==  ===================================================================
>  
>  Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
> -and ``CONFIG_PROC_SYSCTL``.
> +and ``CONFIG_SYSCTL``.
>  
>  
>  sysctl_writes_strict
> diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
> index 2002c7aae4358..59c861866941d 100644
> --- a/kernel/entry/syscall_user_dispatch.c
> +++ b/kernel/entry/syscall_user_dispatch.c
> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
>  					      (char __user *)(uintptr_t)cfg.selector);
>  }
>  
> -#ifdef CONFIG_PROC_SYSCTL
> +#ifdef CONFIG_SYSCTL
>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>  	{
>  		.procname	= "syscall_user_dispatch",
> @@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
>  	return 0;
>  }
>  late_initcall(syscall_user_dispatch_sysctl_init);
> -#endif /* CONFIG_PROC_SYSCTL */
> +#endif /* CONFIG_SYSCTL */
Reviewed-by: Joel Granados <joel.granados@kernel.org>

This looks good to me. It still depends on sysctl-next getting upstream.
I don't see why that would not happen, but it is worth checking after
the merge window if this change is still valid.

Best

Joel
Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Oleg Nesterov 1 month, 2 weeks ago
On 08/13, Karl Mehltretter wrote:
>
> --- a/kernel/entry/syscall_user_dispatch.c
> +++ b/kernel/entry/syscall_user_dispatch.c
> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
>  					      (char __user *)(uintptr_t)cfg.selector);
>  }
>
> -#ifdef CONFIG_PROC_SYSCTL
> +#ifdef CONFIG_SYSCTL
>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>  	{
>  		.procname	= "syscall_user_dispatch",
> @@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
>  	return 0;
>  }
>  late_initcall(syscall_user_dispatch_sysctl_init);
> -#endif /* CONFIG_PROC_SYSCTL */
> +#endif /* CONFIG_SYSCTL */

Thanks!

Acked-by: Oleg Nesterov <oleg@redhat.com>


and just in case... this change is fine even without
8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL")
from sysctl-next.

Oleg.
[PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Karl Mehltretter 1 month, 1 week ago
Commit 8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors
CONFIG_SYSCTL") removed CONFIG_PROC_SYSCTL, but the sysctl added by
commit 5b6e32ba7b59 ("syscall_user_dispatch: Add
kernel.syscall_user_dispatch sysctl") is still guarded by it. Now that
both commits are merged, kernel.syscall_user_dispatch is no longer
registered.

syscall_user_dispatch_allowed defaults to true. SUD therefore remains
available, but administrators cannot disable new activations.

Use CONFIG_SYSCTL for the guard and documentation.

Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
Assisted-by: Codex:gpt-5.6-sol
Acked-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Joel Granados <joel.granados@kernel.org>
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
Changes in v2:
  - Reword changelog and rebase onto mainline now that both commits
    are merged there (v7.2 is unaffected, it has neither commit).
  - Collected Acked-by/Reviewed-by tags from v1. No code change.

v1: https://lore.kernel.org/all/20260813062039.14567-1-kmehltretter@gmail.com/

 Documentation/admin-guide/sysctl/kernel.rst | 2 +-
 kernel/entry/syscall_user_dispatch.c        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
index b6328cd0f43e..ffea61d448eb 100644
--- a/Documentation/admin-guide/sysctl/kernel.rst
+++ b/Documentation/admin-guide/sysctl/kernel.rst
@@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
   ==  ===================================================================
 
 Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
-and ``CONFIG_PROC_SYSCTL``.
+and ``CONFIG_SYSCTL``.
 
 
 sysctl_writes_strict
diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
index 2002c7aae435..59c861866941 100644
--- a/kernel/entry/syscall_user_dispatch.c
+++ b/kernel/entry/syscall_user_dispatch.c
@@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
 					      (char __user *)(uintptr_t)cfg.selector);
 }
 
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
 static const struct ctl_table syscall_user_dispatch_sysctls[] = {
 	{
 		.procname	= "syscall_user_dispatch",
@@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
 	return 0;
 }
 late_initcall(syscall_user_dispatch_sysctl_init);
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */

base-commit: 26260251022fbc2f248a3d747a9b2b961b18d2d8
-- 
2.39.5 (Apple Git-154)
Re: [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Joel Granados 3 weeks ago
On Sat, Aug 22, 2026 at 09:23:25AM +0200, Karl Mehltretter wrote:
> Commit 8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors
> CONFIG_SYSCTL") removed CONFIG_PROC_SYSCTL, but the sysctl added by
> commit 5b6e32ba7b59 ("syscall_user_dispatch: Add
> kernel.syscall_user_dispatch sysctl") is still guarded by it. Now that
> both commits are merged, kernel.syscall_user_dispatch is no longer
> registered.
> 
> syscall_user_dispatch_allowed defaults to true. SUD therefore remains
> available, but administrators cannot disable new activations.
> 
> Use CONFIG_SYSCTL for the guard and documentation.
> 
> Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
> Assisted-by: Codex:gpt-5.6-sol
> Acked-by: Oleg Nesterov <oleg@redhat.com>
> Reviewed-by: Joel Granados <joel.granados@kernel.org>
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> ---
> Changes in v2:
>   - Reword changelog and rebase onto mainline now that both commits
>     are merged there (v7.2 is unaffected, it has neither commit).
>   - Collected Acked-by/Reviewed-by tags from v1. No code change.
> 
> v1: https://lore.kernel.org/all/20260813062039.14567-1-kmehltretter@gmail.com/
> 
>  Documentation/admin-guide/sysctl/kernel.rst | 2 +-
>  kernel/entry/syscall_user_dispatch.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
> index b6328cd0f43e..ffea61d448eb 100644
> --- a/Documentation/admin-guide/sysctl/kernel.rst
> +++ b/Documentation/admin-guide/sysctl/kernel.rst
> @@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
>    ==  ===================================================================
>  
>  Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
> -and ``CONFIG_PROC_SYSCTL``.
> +and ``CONFIG_SYSCTL``.
>  
>  
>  sysctl_writes_strict
> diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
> index 2002c7aae435..59c861866941 100644
> --- a/kernel/entry/syscall_user_dispatch.c
> +++ b/kernel/entry/syscall_user_dispatch.c
> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
>  					      (char __user *)(uintptr_t)cfg.selector);
>  }
>  
> -#ifdef CONFIG_PROC_SYSCTL
> +#ifdef CONFIG_SYSCTL
>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>  	{
>  		.procname	= "syscall_user_dispatch",
> @@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
>  	return 0;
>  }
>  late_initcall(syscall_user_dispatch_sysctl_init);
> -#endif /* CONFIG_PROC_SYSCTL */
> +#endif /* CONFIG_SYSCTL */
> 
> base-commit: 26260251022fbc2f248a3d747a9b2b961b18d2d8
> -- 
> 2.39.5 (Apple Git-154)
> 

I don't see this anywhere upstream; I'll send this as a fix for 7.3-rc3
in the middle of the week unless someone tells me that it is taking some
other path.

Best
Re: [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Randy Dunlap 1 month, 1 week ago

On 8/22/26 12:23 AM, Karl Mehltretter wrote:
> Commit 8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors
> CONFIG_SYSCTL") removed CONFIG_PROC_SYSCTL, but the sysctl added by
> commit 5b6e32ba7b59 ("syscall_user_dispatch: Add
> kernel.syscall_user_dispatch sysctl") is still guarded by it. Now that
> both commits are merged, kernel.syscall_user_dispatch is no longer
> registered.
> 
> syscall_user_dispatch_allowed defaults to true. SUD therefore remains
> available, but administrators cannot disable new activations.
> 
> Use CONFIG_SYSCTL for the guard and documentation.
> 
> Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add kernel.syscall_user_dispatch sysctl")
> Assisted-by: Codex:gpt-5.6-sol
> Acked-by: Oleg Nesterov <oleg@redhat.com>
> Reviewed-by: Joel Granados <joel.granados@kernel.org>
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>

Acked-by: Randy Dunlap <rdunlap@infradead.org>
Thanks.

> ---
> Changes in v2:
>   - Reword changelog and rebase onto mainline now that both commits
>     are merged there (v7.2 is unaffected, it has neither commit).
>   - Collected Acked-by/Reviewed-by tags from v1. No code change.
> 
> v1: https://lore.kernel.org/all/20260813062039.14567-1-kmehltretter@gmail.com/
> 
>  Documentation/admin-guide/sysctl/kernel.rst | 2 +-
>  kernel/entry/syscall_user_dispatch.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Documentation/admin-guide/sysctl/kernel.rst
> index b6328cd0f43e..ffea61d448eb 100644
> --- a/Documentation/admin-guide/sysctl/kernel.rst
> +++ b/Documentation/admin-guide/sysctl/kernel.rst
> @@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User Dispatch via
>    ==  ===================================================================
>  
>  Only present when the kernel is built with ``CONFIG_SYSCALL_USER_DISPATCH``
> -and ``CONFIG_PROC_SYSCTL``.
> +and ``CONFIG_SYSCTL``.
>  
>  
>  sysctl_writes_strict
> diff --git a/kernel/entry/syscall_user_dispatch.c b/kernel/entry/syscall_user_dispatch.c
> index 2002c7aae435..59c861866941 100644
> --- a/kernel/entry/syscall_user_dispatch.c
> +++ b/kernel/entry/syscall_user_dispatch.c
> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct task_struct *task, unsigned long siz
>  					      (char __user *)(uintptr_t)cfg.selector);
>  }
>  
> -#ifdef CONFIG_PROC_SYSCTL
> +#ifdef CONFIG_SYSCTL
>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>  	{
>  		.procname	= "syscall_user_dispatch",
> @@ -195,4 +195,4 @@ static int __init syscall_user_dispatch_sysctl_init(void)
>  	return 0;
>  }
>  late_initcall(syscall_user_dispatch_sysctl_init);
> -#endif /* CONFIG_PROC_SYSCTL */
> +#endif /* CONFIG_SYSCTL */
> 
> base-commit: 26260251022fbc2f248a3d747a9b2b961b18d2d8

-- 
~Randy
Re: [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
Posted by Bradley Morgan 1 month, 1 week ago
On 22 August 2026 18:35:14 BST, Randy Dunlap <rdunlap@infradead.org> wrote:
>
>
>On 8/22/26 12:23 AM, Karl Mehltretter wrote:
>> Commit 8d75c338f0bc ("sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors
>> CONFIG_SYSCTL") removed CONFIG_PROC_SYSCTL, but the sysctl added by
>> commit 5b6e32ba7b59 ("syscall_user_dispatch: Add
>> kernel.syscall_user_dispatch sysctl") is still guarded by it. Now that
>> both commits are merged, kernel.syscall_user_dispatch is no longer
>> registered.
>> 
>> syscall_user_dispatch_allowed defaults to true. SUD therefore remains
>> available, but administrators cannot disable new activations.
>> 
>> Use CONFIG_SYSCTL for the guard and documentation.
>> 
>> Fixes: 5b6e32ba7b59 ("syscall_user_dispatch: Add
>kernel.syscall_user_dispatch sysctl")
>> Assisted-by: Codex:gpt-5.6-sol
>> Acked-by: Oleg Nesterov <oleg@redhat.com>
>> Reviewed-by: Joel Granados <joel.granados@kernel.org>

Reviewed-by: Bradley Morgan <include@grrlz.net>


>> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
>
>Acked-by: Randy Dunlap <rdunlap@infradead.org>
>Thanks.
>
>> ---
>> Changes in v2:
>>   - Reword changelog and rebase onto mainline now that both commits
>>     are merged there (v7.2 is unaffected, it has neither commit).
>>   - Collected Acked-by/Reviewed-by tags from v1. No code change.
>> 
>> v1:
>https://lore.kernel.org/all/20260813062039.14567-1-kmehltretter@gmail.com/
>> 
>>  Documentation/admin-guide/sysctl/kernel.rst | 2 +-
>>  kernel/entry/syscall_user_dispatch.c        | 4 ++--
>>  2 files changed, 3 insertions(+), 3 deletions(-)
>> 
>> diff --git a/Documentation/admin-guide/sysctl/kernel.rst
>b/Documentation/admin-guide/sysctl/kernel.rst
>> index b6328cd0f43e..ffea61d448eb 100644
>> --- a/Documentation/admin-guide/sysctl/kernel.rst
>> +++ b/Documentation/admin-guide/sysctl/kernel.rst
>> @@ -1416,7 +1416,7 @@ Controls whether userspace may arm Syscall User
>Dispatch via
>>    == 
>===================================================================
>>  
>>  Only present when the kernel is built with
>``CONFIG_SYSCALL_USER_DISPATCH``
>> -and ``CONFIG_PROC_SYSCTL``.
>> +and ``CONFIG_SYSCTL``.

Ack.

>>  
>>  
>>  sysctl_writes_strict
>> diff --git a/kernel/entry/syscall_user_dispatch.c
>b/kernel/entry/syscall_user_dispatch.c
>> index 2002c7aae435..59c861866941 100644
>> --- a/kernel/entry/syscall_user_dispatch.c
>> +++ b/kernel/entry/syscall_user_dispatch.c
>> @@ -178,7 +178,7 @@ int syscall_user_dispatch_set_config(struct
>task_struct *task, unsigned long siz
>>  					      (char __user *)(uintptr_t)cfg.selector);
>>  }
>>  
>> -#ifdef CONFIG_PROC_SYSCTL
>> +#ifdef CONFIG_SYSCTL

Ack.

>>  static const struct ctl_table syscall_user_dispatch_sysctls[] = {
>>  	{
>>  		.procname	= "syscall_user_dispatch",
>> @@ -195,4 +195,4 @@ static int __init
>syscall_user_dispatch_sysctl_init(void)
>>  	return 0;
>>  }
>>  late_initcall(syscall_user_dispatch_sysctl_init);
>> -#endif /* CONFIG_PROC_SYSCTL */
>> +#endif /* CONFIG_SYSCTL */
>> 
>> base-commit: 26260251022fbc2f248a3d747a9b2b961b18d2d8
>
>

Thanks!