From: Dave Chinner <david@fromorbit•com>
To: "Thomas Weißschuh" <linux@weissschuh•net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation•org>,
Kees Cook <keescook@chromium•org>,
Alexei Starovoitov <ast@kernel•org>,
Daniel Borkmann <daniel@iogearbox•net>,
John Fastabend <john.fastabend@gmail•com>,
Andrii Nakryiko <andrii@kernel•org>,
Martin KaFai Lau <martin.lau@linux•dev>,
Eduard Zingerman <eddyz87@gmail•com>, Song Liu <song@kernel•org>,
Yonghong Song <yonghong.song@linux•dev>,
KP Singh <kpsingh@kernel•org>,
Stanislav Fomichev <sdf@google•com>, Hao Luo <haoluo@google•com>,
Jiri Olsa <jolsa@kernel•org>, Muchun Song <muchun.song@linux•dev>,
Andrew Morton <akpm@linux-foundation•org>,
"David S. Miller" <davem@davemloft•net>,
Eric Dumazet <edumazet@google•com>,
Jakub Kicinski <kuba@kernel•org>, Paolo Abeni <pabeni@redhat•com>,
David Ahern <dsahern@kernel•org>,
Simon Horman <horms@verge•net.au>, Julian Anastasov <ja@ssi•bg>,
Pablo Neira Ayuso <pablo@netfilter•org>,
Jozsef Kadlecsik <kadlec@netfilter•org>,
Florian Westphal <fw@strlen•de>,
Luis Chamberlain <mcgrof@kernel•org>,
Joel Granados <j.granados@samsung•com>,
Catalin Marinas <catalin.marinas@arm•com>,
Will Deacon <will@kernel•org>, Heiko Carstens <hca@linux•ibm.com>,
Vasily Gorbik <gor@linux•ibm.com>,
Alexander Gordeev <agordeev@linux•ibm.com>,
Christian Borntraeger <borntraeger@linux•ibm.com>,
Sven Schnelle <svens@linux•ibm.com>,
Gerald Schaefer <gerald.schaefer@linux•ibm.com>,
Thomas Gleixner <tglx@linutronix•de>,
Ingo Molnar <mingo@redhat•com>, Borislav Petkov <bp@alien8•de>,
Dave Hansen <dave.hansen@linux•intel.com>,
x86@kernel•org, "H. Peter Anvin" <hpa@zytor•com>,
Phillip Potter <phil@philpotter•co.uk>,
Theodore Ts'o <tytso@mit•edu>,
"Jason A. Donenfeld" <Jason@zx2c4•com>,
Sudip Mukherjee <sudipm.mukherjee@gmail•com>,
Mark Rutland <mark.rutland@arm•com>,
Atish Patra <atishp@atishpatra•org>,
Anup Patel <anup@brainfault•org>,
Paul Walmsley <paul.walmsley@sifive•com>,
Palmer Dabbelt <palmer@dabbelt•com>,
Albert Ou <aou@eecs•berkeley.edu>,
Alexander Viro <viro@zeniv•linux.org.uk>,
Christian Brauner <brauner@kernel•org>, Jan Kara <jack@suse•cz>,
Eric Biederman <ebiederm@xmission•com>,
Chandan Babu R <chandan.babu@oracle•com>,
"Darrick J. Wong" <djwong@kernel•org>,
Steven Rostedt <rostedt@goodmis•org>,
Masami Hiramatsu <mhiramat@kernel•org>,
Peter Zijlstra <peterz@infradead•org>,
Arnaldo Carvalho de Melo <acme@kernel•org>,
Namhyung Kim <namhyung@kernel•org>,
Alexander Shishkin <alexander.shishkin@linux•intel.com>,
Ian Rogers <irogers@google•com>,
Adrian Hunter <adrian.hunter@intel•com>,
Balbir Singh <bsingharora@gmail•com>,
"Naveen N. Rao" <naveen.n.rao@linux•ibm.com>,
Anil S Keshavamurthy <anil.s.keshavamurthy@intel•com>,
Petr Mladek <pmladek@suse•com>,
John Ogness <john.ogness@linutronix•de>,
Sergey Senozhatsky <senozhatsky@chromium•org>,
Juri Lelli <juri.lelli@redhat•com>,
Vincent Guittot <vincent.guittot@linaro•org>,
Dietmar Eggemann <dietmar.eggemann@arm•com>,
Ben Segall <bsegall@google•com>, Mel Gorman <mgorman@suse•de>,
Daniel Bristot de Oliveira <bristot@redhat•com>,
Valentin Schneider <vschneid@redhat•com>,
Andy Lutomirski <luto@amacapital•net>,
Will Drewry <wad@chromium•org>, John Stultz <jstultz@google•com>,
Stephen Boyd <sboyd@kernel•org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios•com>,
"Matthew Wilcox (Oracle)" <willy@infradead•org>,
Roopa Prabhu <roopa@nvidia•com>,
Nikolay Aleksandrov <razor@blackwall•org>,
Remi Denis-Courmont <courmisch@gmail•com>,
Allison Henderson <allison.henderson@oracle•com>,
Marcelo Ricardo Leitner <marcelo.leitner@gmail•com>,
Xin Long <lucien.xin@gmail•com>,
Chuck Lever <chuck.lever@oracle•com>,
Jeff Layton <jlayton@kernel•org>, Neil Brown <neilb@suse•de>,
Olga Kornievskaia <kolga@netapp•com>,
Dai Ngo <Dai.Ngo@oracle•com>, Tom Talpey <tom@talpey•com>,
Trond Myklebust <trond.myklebust@hammerspace•com>,
Anna Schumaker <anna@kernel•org>,
John Johansen <john.johansen@canonical•com>,
Paul Moore <paul@paul-moore•com>,
James Morris <jmorris@namei•org>,
"Serge E. Hallyn" <serge@hallyn•com>,
Alexander Popov <alex.popov@linux•com>,
linux-hardening@vger•kernel.org, linux-kernel@vger•kernel.org,
bpf@vger•kernel.org, linux-mm@kvack•org, netdev@vger•kernel.org,
lvs-devel@vger•kernel.org, netfilter-devel@vger•kernel.org,
coreteam@netfilter•org, linux-fsdevel@vger•kernel.org,
linux-arm-kernel@lists•infradead.org, linux-s390@vger•kernel.org,
linuxppc-dev@lists•ozlabs.org, linux-riscv@lists•infradead.org,
linux-xfs@vger•kernel.org, linux-trace-kernel@vger•kernel.org,
linux-perf-users@vger•kernel.org, kexec@lists•infradead.org,
bridge@lists•linux.dev, linux-rdma@vger•kernel.org,
rds-devel@oss•oracle.com, linux-sctp@vger•kernel.org,
linux-nfs@vger•kernel.org, apparmor@lists•ubuntu.com,
linux-security-module@vger•kernel.org
Subject: Re: [PATCH 11/11] sysctl: treewide: constify the ctl_table argument of handlers
Date: Sat, 16 Mar 2024 13:52:48 +1100 [thread overview]
Message-ID: <ZfUJgML8tk6RWqOC@dread.disaster.area> (raw)
In-Reply-To: <20240315-sysctl-const-handler-v1-11-1322ac7cb03d@weissschuh.net>
On Fri, Mar 15, 2024 at 09:48:09PM +0100, Thomas Weißschuh wrote:
> Adapt the proc_hander function signature to make it clear that handlers
> are not supposed to modify their ctl_table argument.
>
> This is a prerequisite to moving the static ctl_table structs into
> .rodata.
> By migrating all handlers at once a lengthy transition can be avoided.
>
> The patch was mostly generated by coccinelle with the following script:
>
> @@
> identifier func, ctl, write, buffer, lenp, ppos;
> @@
>
> int func(
> - struct ctl_table *ctl,
> + const struct ctl_table *ctl,
> int write, void *buffer, size_t *lenp, loff_t *ppos)
> { ... }
Which seems to have screwed up the formatting of the XFS code...
> diff --git a/fs/xfs/xfs_sysctl.c b/fs/xfs/xfs_sysctl.c
> index a191f6560f98..a3ca192eca79 100644
> --- a/fs/xfs/xfs_sysctl.c
> +++ b/fs/xfs/xfs_sysctl.c
> @@ -10,12 +10,11 @@ static struct ctl_table_header *xfs_table_header;
>
> #ifdef CONFIG_PROC_FS
> STATIC int
> -xfs_stats_clear_proc_handler(
> - struct ctl_table *ctl,
> - int write,
> - void *buffer,
> - size_t *lenp,
> - loff_t *ppos)
> +xfs_stats_clear_proc_handler(const struct ctl_table *ctl,
> + int write,
> + void *buffer,
> + size_t *lenp,
> + loff_t *ppos)
... because this doesn't match any format I've ever seen in the
kernel. The diff for this change shold be just:
@@ -10,7 +10,7 @@ static struct ctl_table_header *xfs_table_header;
#ifdef CONFIG_PROC_FS
STATIC int
xfs_stats_clear_proc_handler(
- struct ctl_table *ctl,
+ const struct ctl_table *ctl,
int write,
void *buffer,
size_t *lenp,
> {
> int ret, *valp = ctl->data;
>
> @@ -30,12 +29,11 @@ xfs_stats_clear_proc_handler(
> }
>
> STATIC int
> -xfs_panic_mask_proc_handler(
> - struct ctl_table *ctl,
> - int write,
> - void *buffer,
> - size_t *lenp,
> - loff_t *ppos)
> +xfs_panic_mask_proc_handler(const struct ctl_table *ctl,
> + int write,
> + void *buffer,
> + size_t *lenp,
> + loff_t *ppos)
> {
> int ret, *valp = ctl->data;
>
> @@ -51,12 +49,11 @@ xfs_panic_mask_proc_handler(
> #endif /* CONFIG_PROC_FS */
>
> STATIC int
> -xfs_deprecated_dointvec_minmax(
> - struct ctl_table *ctl,
> - int write,
> - void *buffer,
> - size_t *lenp,
> - loff_t *ppos)
> +xfs_deprecated_dointvec_minmax(const struct ctl_table *ctl,
> + int write,
> + void *buffer,
> + size_t *lenp,
> + loff_t *ppos)
> {
> if (write) {
> printk_ratelimited(KERN_WARNING
And these need fixing as well.
A further quick glance at the patch reveals that there are other
similar screwed up conversions as well.
> diff --git a/kernel/delayacct.c b/kernel/delayacct.c
> index 6f0c358e73d8..513791ef573d 100644
> --- a/kernel/delayacct.c
> +++ b/kernel/delayacct.c
> @@ -44,8 +44,9 @@ void delayacct_init(void)
> }
>
> #ifdef CONFIG_PROC_SYSCTL
> -static int sysctl_delayacct(struct ctl_table *table, int write, void *buffer,
> - size_t *lenp, loff_t *ppos)
> +static int sysctl_delayacct(const struct ctl_table *table, int write,
> + void *buffer,
> + size_t *lenp, loff_t *ppos)
> {
> int state = delayacct_on;
> struct ctl_table t;
Like this.
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index 724e6d7e128f..e2955e0d9f44 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -450,7 +450,8 @@ static void update_perf_cpu_limits(void)
>
> static bool perf_rotate_context(struct perf_cpu_pmu_context *cpc);
>
> -int perf_event_max_sample_rate_handler(struct ctl_table *table, int write,
> +int perf_event_max_sample_rate_handler(const struct ctl_table *table,
> + int write,
> void *buffer, size_t *lenp, loff_t *ppos)
> {
> int ret;
And this.
> @@ -474,8 +475,10 @@ int perf_event_max_sample_rate_handler(struct ctl_table *table, int write,
>
> int sysctl_perf_cpu_time_max_percent __read_mostly = DEFAULT_CPU_TIME_MAX_PERCENT;
>
> -int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
> - void *buffer, size_t *lenp, loff_t *ppos)
> +int perf_cpu_time_max_percent_handler(const struct ctl_table *table,
> + int write,
> + void *buffer, size_t *lenp,
> + loff_t *ppos)
> {
> int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
>
And this.
> diff --git a/kernel/hung_task.c b/kernel/hung_task.c
> index b2fc2727d654..003f0f5cb111 100644
> --- a/kernel/hung_task.c
> +++ b/kernel/hung_task.c
> @@ -239,9 +239,10 @@ static long hung_timeout_jiffies(unsigned long last_checked,
> /*
> * Process updating of timeout sysctl
> */
> -static int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
> - void *buffer,
> - size_t *lenp, loff_t *ppos)
> +static int proc_dohung_task_timeout_secs(const struct ctl_table *table,
> + int write,
> + void *buffer,
> + size_t *lenp, loff_t *ppos)
> {
> int ret;
>
And this.
> diff --git a/kernel/latencytop.c b/kernel/latencytop.c
> index 781249098cb6..0a5c22b19821 100644
> --- a/kernel/latencytop.c
> +++ b/kernel/latencytop.c
> @@ -65,8 +65,9 @@ static struct latency_record latency_record[MAXLR];
> int latencytop_enabled;
>
> #ifdef CONFIG_SYSCTL
> -static int sysctl_latencytop(struct ctl_table *table, int write, void *buffer,
> - size_t *lenp, loff_t *ppos)
> +static int sysctl_latencytop(const struct ctl_table *table, int write,
> + void *buffer,
> + size_t *lenp, loff_t *ppos)
> {
> int err;
>
And this.
I could go on, but there are so many examples of this in the patch
that I think that it needs to be toosed away and regenerated in a
way that doesn't trash the existing function parameter formatting.
-Dave.
--
Dave Chinner
david@fromorbit•com
prev parent reply other threads:[~2024-03-16 2:52 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-15 20:47 [PATCH 00/11] sysctl: treewide: constify ctl_table argument of sysctl handlers Thomas Weißschuh
2024-03-15 20:47 ` [PATCH 01/11] stackleak: don't modify ctl_table argument Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 02/11] cgroup: bpf: constify ctl_table arguments and fields Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 03/11] hugetlb: constify ctl_table arguments of utility functions Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 04/11] utsname: constify ctl_table arguments of utility function Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 05/11] neighbour: " Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 06/11] ipv4/sysctl: constify ctl_table arguments of utility functions Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 07/11] ipv6/addrconf: " Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 08/11] ipv6/ndisc: constify ctl_table arguments of utility function Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 09/11] ipvs: constify ctl_table arguments of utility functions Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 10/11] sysctl: constify ctl_table arguments of utility function Thomas Weißschuh
2024-03-15 20:48 ` [PATCH 11/11] sysctl: treewide: constify the ctl_table argument of handlers Thomas Weißschuh
2024-03-16 2:52 ` Dave Chinner [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZfUJgML8tk6RWqOC@dread.disaster.area \
--to=david@fromorbit$(echo .)com \
--cc=Dai.Ngo@oracle$(echo .)com \
--cc=Jason@zx2c4$(echo .)com \
--cc=acme@kernel$(echo .)org \
--cc=adrian.hunter@intel$(echo .)com \
--cc=agordeev@linux$(echo .)ibm.com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=alex.popov@linux$(echo .)com \
--cc=alexander.shishkin@linux$(echo .)intel.com \
--cc=allison.henderson@oracle$(echo .)com \
--cc=andrii@kernel$(echo .)org \
--cc=anil.s.keshavamurthy@intel$(echo .)com \
--cc=anna@kernel$(echo .)org \
--cc=anup@brainfault$(echo .)org \
--cc=aou@eecs$(echo .)berkeley.edu \
--cc=apparmor@lists$(echo .)ubuntu.com \
--cc=ast@kernel$(echo .)org \
--cc=atishp@atishpatra$(echo .)org \
--cc=borntraeger@linux$(echo .)ibm.com \
--cc=bp@alien8$(echo .)de \
--cc=bpf@vger$(echo .)kernel.org \
--cc=brauner@kernel$(echo .)org \
--cc=bridge@lists$(echo .)linux.dev \
--cc=bristot@redhat$(echo .)com \
--cc=bsegall@google$(echo .)com \
--cc=bsingharora@gmail$(echo .)com \
--cc=catalin.marinas@arm$(echo .)com \
--cc=chandan.babu@oracle$(echo .)com \
--cc=chuck.lever@oracle$(echo .)com \
--cc=coreteam@netfilter$(echo .)org \
--cc=courmisch@gmail$(echo .)com \
--cc=daniel@iogearbox$(echo .)net \
--cc=dave.hansen@linux$(echo .)intel.com \
--cc=davem@davemloft$(echo .)net \
--cc=dietmar.eggemann@arm$(echo .)com \
--cc=djwong@kernel$(echo .)org \
--cc=dsahern@kernel$(echo .)org \
--cc=ebiederm@xmission$(echo .)com \
--cc=eddyz87@gmail$(echo .)com \
--cc=edumazet@google$(echo .)com \
--cc=fw@strlen$(echo .)de \
--cc=gerald.schaefer@linux$(echo .)ibm.com \
--cc=gor@linux$(echo .)ibm.com \
--cc=gregkh@linuxfoundation$(echo .)org \
--cc=haoluo@google$(echo .)com \
--cc=hca@linux$(echo .)ibm.com \
--cc=horms@verge$(echo .)net.au \
--cc=hpa@zytor$(echo .)com \
--cc=irogers@google$(echo .)com \
--cc=j.granados@samsung$(echo .)com \
--cc=ja@ssi$(echo .)bg \
--cc=jack@suse$(echo .)cz \
--cc=jlayton@kernel$(echo .)org \
--cc=jmorris@namei$(echo .)org \
--cc=john.fastabend@gmail$(echo .)com \
--cc=john.johansen@canonical$(echo .)com \
--cc=john.ogness@linutronix$(echo .)de \
--cc=jolsa@kernel$(echo .)org \
--cc=jstultz@google$(echo .)com \
--cc=juri.lelli@redhat$(echo .)com \
--cc=kadlec@netfilter$(echo .)org \
--cc=keescook@chromium$(echo .)org \
--cc=kexec@lists$(echo .)infradead.org \
--cc=kolga@netapp$(echo .)com \
--cc=kpsingh@kernel$(echo .)org \
--cc=kuba@kernel$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-fsdevel@vger$(echo .)kernel.org \
--cc=linux-hardening@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-mm@kvack$(echo .)org \
--cc=linux-nfs@vger$(echo .)kernel.org \
--cc=linux-perf-users@vger$(echo .)kernel.org \
--cc=linux-rdma@vger$(echo .)kernel.org \
--cc=linux-riscv@lists$(echo .)infradead.org \
--cc=linux-s390@vger$(echo .)kernel.org \
--cc=linux-sctp@vger$(echo .)kernel.org \
--cc=linux-security-module@vger$(echo .)kernel.org \
--cc=linux-trace-kernel@vger$(echo .)kernel.org \
--cc=linux-xfs@vger$(echo .)kernel.org \
--cc=linux@weissschuh$(echo .)net \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=lucien.xin@gmail$(echo .)com \
--cc=luto@amacapital$(echo .)net \
--cc=lvs-devel@vger$(echo .)kernel.org \
--cc=marcelo.leitner@gmail$(echo .)com \
--cc=mark.rutland@arm$(echo .)com \
--cc=martin.lau@linux$(echo .)dev \
--cc=mathieu.desnoyers@efficios$(echo .)com \
--cc=mcgrof@kernel$(echo .)org \
--cc=mgorman@suse$(echo .)de \
--cc=mhiramat@kernel$(echo .)org \
--cc=mingo@redhat$(echo .)com \
--cc=muchun.song@linux$(echo .)dev \
--cc=namhyung@kernel$(echo .)org \
--cc=naveen.n.rao@linux$(echo .)ibm.com \
--cc=neilb@suse$(echo .)de \
--cc=netdev@vger$(echo .)kernel.org \
--cc=netfilter-devel@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=pablo@netfilter$(echo .)org \
--cc=palmer@dabbelt$(echo .)com \
--cc=paul.walmsley@sifive$(echo .)com \
--cc=paul@paul-moore$(echo .)com \
--cc=peterz@infradead$(echo .)org \
--cc=phil@philpotter$(echo .)co.uk \
--cc=pmladek@suse$(echo .)com \
--cc=razor@blackwall$(echo .)org \
--cc=rds-devel@oss$(echo .)oracle.com \
--cc=roopa@nvidia$(echo .)com \
--cc=rostedt@goodmis$(echo .)org \
--cc=sboyd@kernel$(echo .)org \
--cc=sdf@google$(echo .)com \
--cc=senozhatsky@chromium$(echo .)org \
--cc=serge@hallyn$(echo .)com \
--cc=song@kernel$(echo .)org \
--cc=sudipm.mukherjee@gmail$(echo .)com \
--cc=svens@linux$(echo .)ibm.com \
--cc=tglx@linutronix$(echo .)de \
--cc=tom@talpey$(echo .)com \
--cc=trond.myklebust@hammerspace$(echo .)com \
--cc=tytso@mit$(echo .)edu \
--cc=vincent.guittot@linaro$(echo .)org \
--cc=viro@zeniv$(echo .)linux.org.uk \
--cc=vschneid@redhat$(echo .)com \
--cc=wad@chromium$(echo .)org \
--cc=will@kernel$(echo .)org \
--cc=willy@infradead$(echo .)org \
--cc=x86@kernel$(echo .)org \
--cc=yonghong.song@linux$(echo .)dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox