From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCBADC02182 for ; Wed, 22 Jan 2025 12:26:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 412D4280002; Wed, 22 Jan 2025 07:26:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C287280001; Wed, 22 Jan 2025 07:26:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B319280002; Wed, 22 Jan 2025 07:26:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 01588280001 for ; Wed, 22 Jan 2025 07:26:16 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1E17CC1668 for ; Wed, 22 Jan 2025 12:25:55 +0000 (UTC) X-FDA: 83035009470.15.3095C64 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf30.hostedemail.com (Postfix) with ESMTP id 1871C80009; Wed, 22 Jan 2025 12:25:52 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ZRnNn+6T; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf30.hostedemail.com: domain of joel.granados@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=joel.granados@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737548753; a=rsa-sha256; cv=none; b=qaHBumNGKu9S5Vty8s4Sb645DPJSTFPAuFjNOJgS7VaeV2qxgI21w/SAX27jxQCFq03Ugp ATBbqB2ebRs+kBYBg6F5Tw763js+o6QW+f9qnfD9dwkqSioKl71108R73E+JqQk1btdrP2 2Y8Is0wLAa9dtWKM1qV2kPq0PYDOgIo= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ZRnNn+6T; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf30.hostedemail.com: domain of joel.granados@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=joel.granados@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737548753; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GKsy0CgAI7HNXTSqszrGM2CRCHMFPbrE3yv+YuKGi6g=; b=eAnHBEz3nZ/rKNelZAylFHu+oCMSZ8Cqwzo34Mg236eHI7Eh4fbaSG+bPQyJT1Y1nTEZK0 u5rVaDwaRm41SPKKI1aUK68WOzGBHXVCGYXMoSjLH6jj58Bs+9jAv1CuED61jSWBrzYxV6 aw+aPxOVquGgEeQsqyBoP2lccfkBrFQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 8086E5C54FD; Wed, 22 Jan 2025 12:25:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DED6C4CED6; Wed, 22 Jan 2025 12:25:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1737548751; bh=Xfp892u0X0rMtHWkGD3r2bVHj+FTM/t28M4VtoJ0Wyc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZRnNn+6Tt76019xBirdMVmzRbeL8Q2odMq6HFhgkth9P5ZrYdpErYPlXsxL6Fl3rj ZI5VtP10jvH/fQAv6HRDykVpsfGmvb0d/xEWjnDE5tgAnq++jvuWWHT6WYDemhqEh2 qhtEzGq7/MMx5/wpO74r4FRgEujUuclOLSKI/Yy3NZM6X5dfnqSKY4Ag8uJB7GG8XW AQ7J/NzQdgEpLRKLYUKh7jqPAvOBjZZ+gq5nRJ0qTwqiguA+mChUjtx0pX3QTt2bwy E0gMyTw1G3DnV5TJGaTuN+E86ySP5PQe5fDrGHlTa+/9p9roru7zJ1Awo7fm8PfyZm vQJdRIi7afA0Q== Date: Wed, 22 Jan 2025 13:25:46 +0100 From: Joel Granados To: Alexander Gordeev Cc: Thomas =?utf-8?Q?Wei=C3=9Fschuh?= , Kees Cook , Luis Chamberlain , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-crypto@vger.kernel.org, openipmi-developer@lists.sourceforge.net, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-hyperv@vger.kernel.org, linux-rdma@vger.kernel.org, linux-raid@vger.kernel.org, linux-scsi@vger.kernel.org, linux-serial@vger.kernel.org, xen-devel@lists.xenproject.org, linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, netfs@lists.linux.dev, codalist@coda.cs.cmu.edu, linux-mm@kvack.org, linux-nfs@vger.kernel.org, ocfs2-devel@lists.linux.dev, fsverity@lists.linux.dev, linux-xfs@vger.kernel.org, io-uring@vger.kernel.org, bpf@vger.kernel.org, kexec@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, keyrings@vger.kernel.org, Song Liu , "Steven Rostedt (Google)" , "Martin K. Petersen" , "Darrick J. Wong" , Jani Nikula , Corey Minyard Subject: Re: Re: [PATCH v2] treewide: const qualify ctl_tables where applicable Message-ID: References: <20250110-jag-ctl_table_const-v2-1-0000e1663144@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 1871C80009 X-Stat-Signature: 1c6c6k6r7rusqishy894bppy7r4o966a X-HE-Tag: 1737548752-561864 X-HE-Meta: U2FsdGVkX1/PqXSov/QOf4kYkBnpqS8csAJY4JBZWQjZTDnLYpZhuWi+ivPzcSgPzxb1bHz2WIoQlGIzlygUA4BkI6YSS/gqjZo4jrAIcu2BHMRZJ4j8/ILya+IsBfTB3eBUau3+kbSSAEmGbybOLJnJejho8nxKd6jwmpZ5qlw0evG/XDkN751jvoPwtDo34Qsy6CJuz3o1MaSULDlONf2bURE6+QfW9Obot9kr7S7br2kZTGExEAvOab4OHOWA1X+XFvWAuCYSBDHciR4G1W/iuiLqB4Wjl+1jxr2kbaPYReptlNMFc5KjjbYIx39Iy+H3fMeKEsoCRzRB96SH2VVKztvrosHwMxdkdp6cms37KHG8B1NX35MP68rFJtNwagg/TXJxOA+HtAKobVYCdIcGmDqk7tpu7e9rtzg/vDMKbdXMuk8EKCfrHVdluHQUBV3Wj3x0kElNP4tRp4VoR3s6BB3Dku2QHw6cdHGM1zstsPRe3lXVDq7aGbqS7wSaJZW9hCgBvPUdeYyUUcbiS1hipFvcePNklamsyutVwo4DgUyo49jHw0iG6lJhnEKtrBzxAj/1ECZDGMu6CYkwa5Hfi6n3BVtKwG0brkqHvma7uiuaAah8G778WrQEO4WGr5o9Vb9gOE3fgKEXcawpqgi1DjOm/QztDq9cNRoUVPqRmmdA0nFDcRP+mFhVxJaxzWVmlai86N3PXK6OAs7D/yJa5DdvQx7favdE6x4sWwkVE0M+qL2ZE1azZIsGui4vvN3hMS4M8Ou5FDnQGld+1r5bBsumC9eQjfGQj746ig2otW5GdXMGJtcgaClHzvBqNEYyNhG3wFMCinCE2ZzkK81lcIgpsR5VMqhMoY+zPqiFXu16ZBcTUUDD2KcvQ01cB6Q0pPYYtQn3fu/xQx1NQCDsEmqceeQXbsoW3iqcYBmHlNGicWDCBszusHo+D7h1W5WDoc7T2EsayRPYmY1 5omS70zA 6kBt1N9dvaQ5JYcWhJA/y1rjuM91Ccr11BZ0+oAw+phJsaIypyTZD29v8CrnyGC5Lq3hLl0UYw7F7laMFmy1qrW1RZdm6r88VJTtz2xcOiRVEhBMwXV55aNcyljOxfAy8sAswb5QUFz9b2y9q6WIDTh+hkYZ+il/l2cupTKZAGd6TdbNf91maNw3qZB89cl4ssoS47xsPPqiKT9yFl3Hk93b7/wWhCJqH5LCxpzMeVNbjj0J9x0aylNIivyPzbfkcOBHPbHDqOzR0fxKjGOJTVYYX04+HtBzwiEgk1eDah2CR/XT0U0vxmttWneUtjwABXVx5YBCLNy3T/NS9OV94NkzHEE0eNWgX9ZfD3byUhdYVSio= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Jan 21, 2025 at 02:40:16PM +0100, Alexander Gordeev wrote: > On Fri, Jan 10, 2025 at 03:16:08PM +0100, Joel Granados wrote: > > Hi Joel, > > > Add the const qualifier to all the ctl_tables in the tree except for > > watchdog_hardlockup_sysctl, memory_allocation_profiling_sysctls, > > loadpin_sysctl_table and the ones calling register_net_sysctl (./net, > > drivers/inifiniband dirs). These are special cases as they use a > > registration function with a non-const qualified ctl_table argument or > > modify the arrays before passing them on to the registration function. > > > > Constifying ctl_table structs will prevent the modification of > > proc_handler function pointers as the arrays would reside in .rodata. > > This is made possible after commit 78eb4ea25cd5 ("sysctl: treewide: > > constify the ctl_table argument of proc_handlers") constified all the > > proc_handlers. > > I could identify at least these occurences in s390 code as well: Hey Alexander Thx for bringing these to my attention. I had completely missed them as the spatch only deals with ctl_tables outside functions. Short answer: These should not be included in the current patch because they are a different pattern from how sysctl tables are usually used. So I will not include them. With that said, I think it might be interesting to look closer at them as they seem to be complicating the proc_handler (I have to look at them closer). I see that they are defining a ctl_table struct within the functions and just using the data (from the incoming ctl_table) to forward things down to proc_do{u,}intvec_* functions. This is very odd and I have only seen it done in order to change the incoming ctl_table (which is not what is being done here). I will take a closer look after the merge window and circle back with more info. Might take me a while as I'm not very familiar with s390 code; any additional information on why those are being used inside the functions would be helpfull. Best > > diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c > index dd7ba7587dd5..9b83c318f919 100644 > --- a/arch/s390/appldata/appldata_base.c > +++ b/arch/s390/appldata/appldata_base.c > @@ -204,7 +204,7 @@ appldata_timer_handler(const struct ctl_table *ctl, int write, > { > int timer_active = appldata_timer_active; > int rc; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &timer_active, > .maxlen = sizeof(int), > @@ -237,7 +237,7 @@ appldata_interval_handler(const struct ctl_table *ctl, int write, > { > int interval = appldata_interval; > int rc; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &interval, > .maxlen = sizeof(int), > @@ -269,7 +269,7 @@ appldata_generic_handler(const struct ctl_table *ctl, int write, > struct list_head *lh; > int rc, found; > int active; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .data = &active, > .maxlen = sizeof(int), > .extra1 = SYSCTL_ZERO, > diff --git a/arch/s390/kernel/hiperdispatch.c b/arch/s390/kernel/hiperdispatch.c > index 7857a7e8e56c..7d0ba16085c1 100644 > --- a/arch/s390/kernel/hiperdispatch.c > +++ b/arch/s390/kernel/hiperdispatch.c > @@ -273,7 +273,7 @@ static int hiperdispatch_ctl_handler(const struct ctl_table *ctl, int write, > { > int hiperdispatch; > int rc; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &hiperdispatch, > .maxlen = sizeof(int), > diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c > index 6691808bf50a..26e50de83d80 100644 > --- a/arch/s390/kernel/topology.c > +++ b/arch/s390/kernel/topology.c > @@ -629,7 +629,7 @@ static int topology_ctl_handler(const struct ctl_table *ctl, int write, > int enabled = topology_is_enabled(); > int new_mode; > int rc; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &enabled, > .maxlen = sizeof(int), > @@ -658,7 +658,7 @@ static int polarization_ctl_handler(const struct ctl_table *ctl, int write, > { > int polarization; > int rc; > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &polarization, > .maxlen = sizeof(int), > diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c > index 939e3bec2db7..8e354c90a3dd 100644 > --- a/arch/s390/mm/cmm.c > +++ b/arch/s390/mm/cmm.c > @@ -263,7 +263,7 @@ static int cmm_pages_handler(const struct ctl_table *ctl, int write, > void *buffer, size_t *lenp, loff_t *ppos) > { > long nr = cmm_get_pages(); > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &nr, > .maxlen = sizeof(long), > @@ -283,7 +283,7 @@ static int cmm_timed_pages_handler(const struct ctl_table *ctl, int write, > loff_t *ppos) > { > long nr = cmm_get_timed_pages(); > - struct ctl_table ctl_entry = { > + const struct ctl_table ctl_entry = { > .procname = ctl->procname, > .data = &nr, > .maxlen = sizeof(long), > > > > Best regards, > > -- > > Joel Granados > > Thanks! -- Joel Granados