* [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
@ 2026-08-13 6:20 Karl Mehltretter
2026-08-13 15:09 ` Oleg Nesterov
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Karl Mehltretter @ 2026-08-13 6:20 UTC (permalink / raw)
To: Thomas Gleixner
Cc: Karl Mehltretter, Gregory Price, Peter Zijlstra, Andy Lutomirski,
Kees Cook, Joel Granados, Oleg Nesterov, Jonathan Corbet,
Shuah Khan, Mark Brown, Stephen Rothwell, linux-kernel, linux-doc,
linux-next
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
2026-08-13 6:20 [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard Karl Mehltretter
@ 2026-08-13 15:09 ` Oleg Nesterov
2026-08-14 10:55 ` Joel Granados
2026-08-22 7:23 ` [PATCH v2] " Karl Mehltretter
2 siblings, 0 replies; 6+ messages in thread
From: Oleg Nesterov @ 2026-08-13 15:09 UTC (permalink / raw)
To: Karl Mehltretter
Cc: Thomas Gleixner, Gregory Price, Peter Zijlstra, Andy Lutomirski,
Kees Cook, Joel Granados, Jonathan Corbet, Shuah Khan, Mark Brown,
Stephen Rothwell, linux-kernel, linux-doc, linux-next
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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
2026-08-13 6:20 [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard Karl Mehltretter
2026-08-13 15:09 ` Oleg Nesterov
@ 2026-08-14 10:55 ` Joel Granados
2026-08-22 7:23 ` [PATCH v2] " Karl Mehltretter
2 siblings, 0 replies; 6+ messages in thread
From: Joel Granados @ 2026-08-14 10:55 UTC (permalink / raw)
To: Karl Mehltretter
Cc: Thomas Gleixner, Gregory Price, Peter Zijlstra, Andy Lutomirski,
Kees Cook, Oleg Nesterov, Jonathan Corbet, Shuah Khan, Mark Brown,
Stephen Rothwell, linux-kernel, linux-doc, linux-next
[-- Attachment #1: Type: text/plain, Size: 2958 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
2026-08-13 6:20 [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard Karl Mehltretter
2026-08-13 15:09 ` Oleg Nesterov
2026-08-14 10:55 ` Joel Granados
@ 2026-08-22 7:23 ` Karl Mehltretter
2026-08-22 17:35 ` Randy Dunlap
2 siblings, 1 reply; 6+ messages in thread
From: Karl Mehltretter @ 2026-08-22 7:23 UTC (permalink / raw)
To: Thomas Gleixner
Cc: Karl Mehltretter, Gregory Price, Peter Zijlstra, Andy Lutomirski,
Kees Cook, Joel Granados, Oleg Nesterov, Jonathan Corbet,
Shuah Khan, Mark Brown, Stephen Rothwell, linux-kernel, linux-doc,
linux-next
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)
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
2026-08-22 7:23 ` [PATCH v2] " Karl Mehltretter
@ 2026-08-22 17:35 ` Randy Dunlap
2026-08-22 17:37 ` Bradley Morgan
0 siblings, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2026-08-22 17:35 UTC (permalink / raw)
To: Karl Mehltretter, Thomas Gleixner
Cc: Gregory Price, Peter Zijlstra, Andy Lutomirski, Kees Cook,
Joel Granados, Oleg Nesterov, Jonathan Corbet, Shuah Khan,
Mark Brown, Stephen Rothwell, linux-kernel, linux-doc, linux-next
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard
2026-08-22 17:35 ` Randy Dunlap
@ 2026-08-22 17:37 ` Bradley Morgan
0 siblings, 0 replies; 6+ messages in thread
From: Bradley Morgan @ 2026-08-22 17:37 UTC (permalink / raw)
To: rdunlap
Cc: broonie, corbet, gourry, joel.granados, kees, kmehltretter,
linux-doc, linux-kernel, linux-next, luto, oleg, peterz, sfr,
skhan, tglx
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!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-08-22 17:37 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-13 6:20 [PATCH] syscall_user_dispatch: Use CONFIG_SYSCTL for sysctl guard Karl Mehltretter
2026-08-13 15:09 ` Oleg Nesterov
2026-08-14 10:55 ` Joel Granados
2026-08-22 7:23 ` [PATCH v2] " Karl Mehltretter
2026-08-22 17:35 ` Randy Dunlap
2026-08-22 17:37 ` Bradley Morgan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox