linux-modules.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Thompson <daniel.thompson@linaro.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
	Aaron Tomlin <atomlin@redhat.com>,
	"mcgrof@kernel.org" <mcgrof@kernel.org>,
	"pmladek@suse.com" <pmladek@suse.com>,
	"cl@linux.com" <cl@linux.com>, "mbenes@suse.cz" <mbenes@suse.cz>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"jeyu@kernel.org" <jeyu@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org>,
	"void@manifault.com" <void@manifault.com>,
	"atomlin@atomlin.com" <atomlin@atomlin.com>,
	"allen.lkml@gmail.com" <allen.lkml@gmail.com>,
	"joe@perches.com" <joe@perches.com>,
	"msuchanek@suse.de" <msuchanek@suse.de>,
	"oleksandr@natalenko.name" <oleksandr@natalenko.name>,
	"jason.wessel@windriver.com" <jason.wessel@windriver.com>
Subject: Re: [PATCH v9 13/14] module: Move kdb_modules list out of core code
Date: Thu, 3 Mar 2022 14:59:49 +0000	[thread overview]
Message-ID: <20220303145949.inaz2tecmfuek2hf@maple.lan> (raw)
In-Reply-To: <YiDEmRf3X0fxSayK@infradead.org>

On Thu, Mar 03, 2022 at 05:37:29AM -0800, Christoph Hellwig wrote:
> On Wed, Mar 02, 2022 at 08:56:23PM +0000, Christophe Leroy wrote:
> > Do we really want to hide the 'struct list_head modules' from external 
> > world ?
> > 
> > Otherwise we could declare it in include/linux/module.h ?
> 
> I'd just move the trivial code that uses it from kernel/kdb/ to
> kernel/module/ as it is tied to module internals and just uses the
> KDB interfaces exposed to other parts of the kernel.

One of the best ways that we can common up code might be to dust
off some code I wrote a while back to display seq_files from
kdb.

The basic idea worked well enough but it often needs special
start/stop operatings to ensure the start meeds kdb's rather
odd locking restrictions. If there is a willingness for
something like the below to be included in the module code then we
could replace kdb_lsmod() with something that reused the code to
 format /proc/modules.


Daniel.


diff --git a/kernel/module.c b/kernel/module.c
index 84a9141a5e159..ab43ee23cdba0 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -4664,7 +4664,33 @@ static int __init proc_modules_init(void)
        return 0;
 }
 module_init(proc_modules_init);
-#endif
+
+#ifdef CONFIG_KGDB_KDB
+static void *kdb_m_start(struct seq_file *m, loff_t *pos)
+{
+       static LIST_HEAD(empty);
+       struct list_head *modlist = &modules;
+
+       if (mutex_is_locked(&module_mutex)) {
+               pr_info("Cannot display module list because it is
locked\n");
+               modlist = empty;
+       }
+
+       return seq_list_start(modlist, *pos);
+}
+
+const struct seq_operations kdb_modules_seqops = {
+       .start  = kdb_m_start,
+       .next   = m_next,
+       .show   = m_show
+};
+#endif /* CONFIG_KGDB_KDB */
+
+/*
+ * TODO: Need to decide if it OK to disable kdb lsmod if
+ * !CONFIG_PROC_FS... but it probably is!
+ */
+#endif /* CONFIG_PROC_FS */
 
 /* Given an address, look for it in the module exception tables. */
 const struct exception_table_entry *search_module_extables(unsigned
long addr)

  reply	other threads:[~2022-03-03 14:59 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-28 23:43 [PATCH v9 00/14] module: core code clean up Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 01/14] module: Move all into module/ Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 02/14] module: Simple refactor in preparation for split Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 03/14] module: Make internal.h and decompress.c more compliant Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 04/14] module: Move livepatch support to a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 05/14] module: Move latched RB-tree " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 06/14] module: Move strict rwx " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 07/14] module: Move extra signature support out of core code Aaron Tomlin
2022-03-02  8:08   ` Christophe Leroy
2022-03-02 13:33     ` Aaron Tomlin
2022-03-02 13:41       ` Christophe Leroy
2022-03-05 20:37     ` Aaron Tomlin
2022-03-06 17:46       ` Christophe Leroy
2022-03-07  9:38         ` Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 08/14] module: Move kmemleak support to a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 09/14] module: Move kallsyms support into " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 10/14] module: kallsyms: Fix suspicious rcu usage Aaron Tomlin
2022-03-01 16:52   ` Aaron Tomlin
2022-03-02 17:02     ` Aaron Tomlin
2022-03-02 22:24       ` Luis Chamberlain
2022-02-28 23:43 ` [PATCH v9 11/14] module: Move procfs support into a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 12/14] module: Move sysfs " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 13/14] module: Move kdb_modules list out of core code Aaron Tomlin
2022-03-02 16:19   ` Daniel Thompson
2022-03-02 16:26     ` Daniel Thompson
2022-03-02 20:31     ` Aaron Tomlin
2022-03-02 20:56       ` Christophe Leroy
2022-03-02 22:46         ` Luis Chamberlain
2022-03-03 10:44           ` Aaron Tomlin
2022-03-03 14:57             ` Luis Chamberlain
2022-03-03 13:37         ` Christoph Hellwig
2022-03-03 14:59           ` Daniel Thompson [this message]
2022-03-03 17:54             ` Christoph Hellwig
2022-03-03 18:16               ` Christophe Leroy
2022-03-03 19:00                 ` Christoph Hellwig
2022-03-03 19:21               ` Luis Chamberlain
2022-03-04 11:12           ` Aaron Tomlin
2022-03-04 11:54             ` Daniel Thompson
2022-03-04 11:59               ` Aaron Tomlin
2022-03-03 12:55       ` Daniel Thompson
2022-02-28 23:43 ` [PATCH v9 14/14] module: Move version support into a separate file Aaron Tomlin
2022-03-01  0:21 ` [PATCH v9 00/14] module: core code clean up Luis Chamberlain
2022-03-01  7:07   ` Christophe Leroy
2022-03-01 16:00     ` Luis Chamberlain
2022-03-01  7:44   ` Christophe Leroy
2022-03-01 16:01     ` Luis Chamberlain
2022-03-01 17:15       ` Lucas De Marchi
2022-03-01 17:43         ` Christophe Leroy

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=20220303145949.inaz2tecmfuek2hf@maple.lan \
    --to=daniel.thompson@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=allen.lkml@gmail.com \
    --cc=atomlin@atomlin.com \
    --cc=atomlin@redhat.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=cl@linux.com \
    --cc=hch@infradead.org \
    --cc=jason.wessel@windriver.com \
    --cc=jeyu@kernel.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-modules@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=mcgrof@kernel.org \
    --cc=msuchanek@suse.de \
    --cc=oleksandr@natalenko.name \
    --cc=pmladek@suse.com \
    --cc=void@manifault.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).