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 87E10C2D0CD for ; Mon, 19 May 2025 15:20:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D03B76B00C0; Mon, 19 May 2025 11:20:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB4746B00C1; Mon, 19 May 2025 11:20:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B2D506B00D2; Mon, 19 May 2025 11:20:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 908076B00C0 for ; Mon, 19 May 2025 11:20:36 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7AE85E4346 for ; Mon, 19 May 2025 15:20:38 +0000 (UTC) X-FDA: 83460019356.07.90438CC Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf19.hostedemail.com (Postfix) with ESMTP id DCFEE1A0016 for ; Mon, 19 May 2025 15:20:36 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="pg+W/TWK"; spf=pass (imf19.hostedemail.com: domain of joel.granados@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=joel.granados@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747668036; 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=PrpmmI84/QCFuGWv4tZqtQl1nLA0njODTRw5VZmc8WQ=; b=u1YRUS3KjJFwGD+f45180J5S06Q7OKqiM3j9Xf0qDhkMBthV6ozxCuvzKR1ucQFhzDM+Na /rVclP2o49UjAbnAyCfGi3dIcMR9FDHtNZn4QNC72MEc5jEYYpTEgEZ9sGmhisrQymQo/J AktUR4zBxUhPHGN9EGgOlbtlPNjipfU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747668036; a=rsa-sha256; cv=none; b=fWAk/FUZjpKcvxkYRVZpOEKscgKWowabykmW2CV/O+ALI4K9XEYxRJ8cLv20B4J15Hu4O2 xMrYVr33OZY6Rf9pZ4Z2eqQDqOF6skgysxuyl5KUWVICg3zGy2xHGrDJZNtDnvF05wVnr4 9yGippCOwqUi3bfwpt05RMeW5G1TnsI= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="pg+W/TWK"; spf=pass (imf19.hostedemail.com: domain of joel.granados@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=joel.granados@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 1C23AA4DFEE; Mon, 19 May 2025 15:20:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31192C4CEE4; Mon, 19 May 2025 15:20:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747668035; bh=hCsytdVeeJL9k59PuEkSeSt24V1PhRpfKVXpzj7jUtw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pg+W/TWKKyjgF5xP20j0uAdD0cIn+UCdcUHoBD8pvqnECQMtWaatkCm3ynMk1tcKQ BnFX9YSkQqtUIqBJw8xMqDfNAU80qfQ5jKuhqN8lSxQ1uBnPX+xsF7kROYIXaoGtbi p41LAZ79T2BhxM69kZciPyVjVh+p1iGy9hvmiFowCNVhK4wPPalkEdnOUGWnvX3Ph2 N2wvZe/D7j8ui6YHApTHqAm0hdwMIhqIYwg76JLjDrJAoUCh2T4wWySPbqF8c8KZPf XfUUm4HHS5mTc9BxQFVQ59h5CSgXnfwnOolD5CF6/Y97/QLWj/M15r9u+xhM86jyb7 M5DYrZNKbxFoQ== Date: Mon, 19 May 2025 17:20:30 +0200 From: Joel Granados To: Petr Pavlu Cc: Luis Chamberlain , Sami Tolvanen , Daniel Gomez , Kees Cook , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Andrew Morton , "James E.J. Bottomley" , Helge Deller , Greg Kroah-Hartman , Jiri Slaby , linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, rcu@vger.kernel.org, linux-mm@kvack.org, linux-parisc@vger.kernel.org, linux-serial@vger.kernel.org Subject: Re: [PATCH 01/12] module: Move modprobe_path and modules_disabled ctl_tables into the module subsys Message-ID: References: <20250509-jag-mv_ctltables_iter2-v1-0-d0ad83f5f4c3@kernel.org> <20250509-jag-mv_ctltables_iter2-v1-1-d0ad83f5f4c3@kernel.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="otw3l52sr4y45r5c" Content-Disposition: inline In-Reply-To: X-Stat-Signature: gyphgx7kqac4mrwefxp6kfeew6c6mwfa X-Rspamd-Queue-Id: DCFEE1A0016 X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747668036-830670 X-HE-Meta: U2FsdGVkX18Y3tlKRcEo9VOUZYNrebCmqAGmqRTkZfk0rGSHTZad/43xcnaiOKc1ljyl7oLMOrk4dTVm/91lsAMaaNOxeNReHfHk3xDglDDMXmQeE2iFO5PmW2dVLVcIZdoegz/JLdqizHCsE1GDozyu1h8RFOB/U/ZskPPWOXcXusFUDgLoC7RDVF70K+pv1wfwdLCvCWtqXT8nPFKm2GGIC5vjXaPA7m5KDYTWtQ8bxuodPhg+RhJ6kdVKonWX+vqagS0BpvH5Oi1lRSI150UFBkIGQUjuY56hWCWFVAYnOtxHaGKKWpW2G3sVKks1UyhfVr9afU+QatY9odAgiqyqHz1uTSh9FL1yc4oSQhwBtNOLdOJ1xU7E4p1jBpbQzo4xG+s2pKAXqz3CtYSkpb9O735P1aOFX+ovQi5eIX56QeeNWA2c6jjdXpTxVcTs/25UgG2K+5ERnxDOeJkybu3xsjt7/hFn81r4sJKrrTWdlPmyWlYHnxRdhOjMvEpG7R9rsJYq7mYHjagOmVc2sWYNSBU4eLSixzM3Jj5UYnlIe8fnMMQnNQ3bXuURPIneMHvfVNrrTEbcVvcHqLR7IYd11nR+X700tEVKxs+K874GNSJ8FYfqTHCI1Zio+YLS0MUpzbvCJe3ya5CDtj1umiK3IdOAgx4i08zjNRaVNUbnKczu0tyyh5Zk2oB9Kr9TCoolzM4p5ZSp5a4zvQOQ9qmLQhEwMzAfUkXauaX/R+JpWUdX6k4Cis8oQg2Lo7lHhpgB47jibvrSnqWL3DzmvaIoWPerX6f/EmlVwimJrrmG1TaritLSkbc460p2qeH5150fMzDavETi90jxH11O31Z152oyDeLzNr5OcBBkKfawB+GOuZrKYgicKsYOKUlvBpA1YVK7ZtEIPDbJTdRM/CNBHm3Uzr+576CHmFWaNz1R/CFaIPmhQBUCVBEzy4NvJv7YpRwsvcbZyOwycK2 Hn1OMmfB dDNTagpmMTirzpB01ZTlLznWuXnsiD+XqVUK3bw78DbNGgtFoOXtWd4T525JPnRQ1it4teOuH3pL5N3++5jCfberWzh464YJb6K0L5rT0Ahr9Zzu4IoJvNCT71YKsVygW4dtPewoiuHqn32G0ZTI+GOPVgUSikaAeCSorpkvV3j6IAx/GCiNGv5UWWGtWvSyEEb/vJYjKd9dKGeb0p7llI6FPfRNfbm5nYQL3S6mea3qgJVcaNQUiIjsWbM558EEty89wxyi7yDnpp2FT60D3WSRkjNq9bjvcj5JQNGCS8YCi/s0OtdBXCVYh9StarTQNGo3rwsQHser0VLSEuX+B6ZIv1tmvFtffdPrGWvD9giqVJoM2IS3q9gmhZM9FNaTkpMjUf6dY60Qt2PCATb00WjFh5kseVpPiw11ebDD7WiZIh2zM6m5agjtgsq78FXm97IkV5TNp7yCMK9arcCRsTwY6Qsp8wfLttB14W6FruKa4Cg39xfo2QixECW55yAddxZDgCiFoCWA7Wwqq88klQy4QAhmJHpKhO4LQpTGlDKgq46k= 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: --otw3l52sr4y45r5c Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 15, 2025 at 02:45:22PM +0200, Petr Pavlu wrote: > On 5/15/25 12:04, Joel Granados wrote: > > On Thu, May 15, 2025 at 10:04:53AM +0200, Petr Pavlu wrote: > >> On 5/9/25 14:54, Joel Granados wrote: > >>> Move module sysctl (modprobe_path and modules_disabled) out of sysctl= =2Ec > >>> and into the modules subsystem. Make the modprobe_path variable static > >>> as it no longer needs to be exported. Remove module.h from the includ= es > >>> in sysctl as it no longer uses any module exported variables. =2E.. > > Like this?: > > [...] >=20 > Let's also move the KMOD_PATH_LEN definition and the modprobe_path > declaration from include/linux/kmod.h to kernel/module/internal.h, as > they are now fully internal to the module loader, and use "module" > instead of "kmod" in the sysctl registration to avoid confusion with the > modprobe logic. >=20 > The adjusted patch is below. >=20 > Reviewed-by: Petr Pavlu Thx for review and patch. Have applied it to my current V2 branch [1] Best [1] https://git.kernel.org/pub/scm/linux/kernel/git/joel.granados/linux.git= /log/?h=3Djag/mv_ctltables_iter2 >=20 > --=20 > Thanks, > Petr >=20 >=20 > diff --git a/include/linux/kmod.h b/include/linux/kmod.h > index 68f69362d427..9a07c3215389 100644 > --- a/include/linux/kmod.h > +++ b/include/linux/kmod.h > @@ -14,10 +14,7 @@ > #include > #include > =20 > -#define KMOD_PATH_LEN 256 > - > #ifdef CONFIG_MODULES > -extern char modprobe_path[]; /* for sysctl */ > /* modprobe exit status on success, -ve on error. Return value > * usually useless though. */ > extern __printf(2, 3) > diff --git a/include/linux/module.h b/include/linux/module.h > index 8050f77c3b64..f4ab8d90c475 100644 > --- a/include/linux/module.h > +++ b/include/linux/module.h > @@ -304,7 +304,6 @@ struct notifier_block; > =20 > #ifdef CONFIG_MODULES > =20 > -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); > diff --git a/kernel/module/internal.h b/kernel/module/internal.h > index 626cf8668a7e..0954c8de00c2 100644 > --- a/kernel/module/internal.h > +++ b/kernel/module/internal.h > @@ -58,6 +58,9 @@ extern const struct kernel_symbol __stop___ksymtab_gpl[= ]; > extern const u32 __start___kcrctab[]; > extern const u32 __start___kcrctab_gpl[]; > =20 > +#define KMOD_PATH_LEN 256 > +extern char modprobe_path[]; > + > struct load_info { > const char *name; > /* pointer to module in temporary copy, freed at end of load_module() */ > diff --git a/kernel/module/main.c b/kernel/module/main.c > index a2859dc3eea6..a336b7b3fb23 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -126,9 +126,37 @@ static void mod_update_bounds(struct module *mod) > } > =20 > /* Block module loading/unloading? */ > -int modules_disabled; > +static int modules_disabled; > core_param(nomodule, modules_disabled, bint, 0); > =20 > +static const struct ctl_table module_sysctl_table[] =3D { > + { > + .procname =3D "modprobe", > + .data =3D &modprobe_path, > + .maxlen =3D KMOD_PATH_LEN, > + .mode =3D 0644, > + .proc_handler =3D proc_dostring, > + }, > + { > + .procname =3D "modules_disabled", > + .data =3D &modules_disabled, > + .maxlen =3D sizeof(int), > + .mode =3D 0644, > + /* only handle a transition from default "0" to "1" */ > + .proc_handler =3D proc_dointvec_minmax, > + .extra1 =3D SYSCTL_ONE, > + .extra2 =3D SYSCTL_ONE, > + }, > +}; > + > +static int __init init_module_sysctl(void) > +{ > + register_sysctl_init("kernel", module_sysctl_table); > + return 0; > +} > + > +subsys_initcall(init_module_sysctl); > + > /* Waiting for a module to finish initializing? */ > static DECLARE_WAIT_QUEUE_HEAD(module_wq); > =20 > diff --git a/kernel/sysctl.c b/kernel/sysctl.c > index 9b4f0cff76ea..473133d9651e 100644 > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -19,7 +19,6 @@ > * Removed it and replaced it with older style, 03/23/00, Bill Wendling > */ > =20 > -#include > #include > #include > #include > @@ -1616,25 +1615,6 @@ static const struct ctl_table kern_table[] =3D { > .proc_handler =3D proc_dointvec, > }, > #endif > -#ifdef CONFIG_MODULES > - { > - .procname =3D "modprobe", > - .data =3D &modprobe_path, > - .maxlen =3D KMOD_PATH_LEN, > - .mode =3D 0644, > - .proc_handler =3D proc_dostring, > - }, > - { > - .procname =3D "modules_disabled", > - .data =3D &modules_disabled, > - .maxlen =3D sizeof(int), > - .mode =3D 0644, > - /* only handle a transition from default "0" to "1" */ > - .proc_handler =3D proc_dointvec_minmax, > - .extra1 =3D SYSCTL_ONE, > - .extra2 =3D SYSCTL_ONE, > - }, > -#endif > #ifdef CONFIG_UEVENT_HELPER > { > .procname =3D "hotplug", >=20 --=20 Joel Granados --otw3l52sr4y45r5c Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEErkcJVyXmMSXOyyeQupfNUreWQU8FAmgrTDAACgkQupfNUreW QU/twAv8DxA6gxRLdNSDZrJxSdnvcFu76bvp0iwD1X6Ms0Yq16tmcaIqSS8XtA7r Qe9aRNluUy/XUZj84T/WmyEBTVMLERBJAxp0moXvGXSHJ7hkKDJ2uM74VfH3xvcR RhM9Hlc6MkUqywUumSFsCUeqvsftJY/e/3Yg72ANzknwRuNC97dh+EZihUxDnufa JrBHT/f2y3qUHeJfpHS8aOa7LuZtL93rHeoju8Sacw6PQcmI2+hZWFr3nC3UK3FW jiEn6n2oZgzpdgpgnoguceNDRjqCJMVojeM24vEPT7XRxl8ez9cbu4w/vWqtuts4 0fekBOrig2pDSWAA2u/Qkyk4uWpLxveSsYb8XCXjYqMWcZSJJ+Z+o/bv5z5niPZP DP7eTwecC+yS6lwU2aN0CLFu13QL9XAVp28YO2xzRLN0g5HqqViItD8bl4F3kZCr m9bb0y2TKAwncoFOEPGa5tEIZ39w2C7RWlXM8XIRYWR0vp4it6KAi92eO7Cb0374 3lh/X1hk =Ofdx -----END PGP SIGNATURE----- --otw3l52sr4y45r5c--