All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v4 00/13] module: core code clean up
@ 2022-01-30 21:32 Aaron Tomlin
  2022-01-30 21:32 ` [RFC PATCH v4 01/13] module: Move all into module/ Aaron Tomlin
                   ` (15 more replies)
  0 siblings, 16 replies; 44+ messages in thread
From: Aaron Tomlin @ 2022-01-30 21:32 UTC (permalink / raw)
  To: mcgrof
  Cc: cl, pmladek, mbenes, akpm, jeyu, linux-kernel, linux-modules,
	live-patching, atomlin, ghalat, allen.lkml, void, joe

Hi Luis,

As per your suggestion [1], this is an attempt to refactor and split
optional code out of core module support code into separate components.
This version is based on branch mcgrof/modules-next since a97ac8cb24a3/or
modules-5.17-rc1. Please let me know your thoughts.

Changes since v1 [2]:

  - Moved module version support code into a new file

Changes since v2 [3]:

 - Moved module decompress support to a separate file
 - Made check_modinfo_livepatch() generic (Petr Mladek)
 - Removed filename from each newly created file (Luis Chamberlain)
 - Addressed some (i.e. --ignore=ASSIGN_IN_IF,AVOID_BUG was used)
   minor scripts/checkpatch.pl concerns e.g., use strscpy over
   strlcpy and missing a blank line after declarations (Allen)

Changes since v3 [4]:

 - Refactored both is_livepatch_module() and set_livepatch_module(),
   respectively, to use IS_ENABLED(CONFIG_LIVEPATCH) (Joe Perches)
 - Addressed various compiler warnings e.g., no previous prototype (0-day)

[1]: https://lore.kernel.org/lkml/YbEZ4HgSYQEPuRmS@bombadil.infradead.org/
[2]: https://lore.kernel.org/lkml/20211228213041.1356334-1-atomlin@redhat.com/
[3]: https://lore.kernel.org/lkml/20220106234319.2067842-1-atomlin@redhat.com/
[4]: https://lore.kernel.org/lkml/20220128203934.600247-1-atomlin@redhat.com/

Aaron Tomlin (13):
  module: Move all into module/
  module: Simple refactor in preparation for split
  module: Move livepatch support to a separate file
  module: Move latched RB-tree support to a separate file
  module: Move arch strict rwx support to a separate file
  module: Move strict rwx support to a separate file
  module: Move extra signature support out of core code
  module: Move kmemleak support to a separate file
  module: Move kallsyms support into a separate file
  module: Move procfs support into a separate file
  module: Move sysfs support into a separate file
  module: Move kdb_modules list out of core code
  module: Move version support into a separate file

 MAINTAINERS                                   |    2 +-
 include/linux/module.h                        |   64 +-
 kernel/Makefile                               |    5 +-
 kernel/debug/kdb/kdb_main.c                   |    5 +
 kernel/module-internal.h                      |   50 -
 kernel/module/Makefile                        |   20 +
 kernel/module/arch_strict_rwx.c               |   44 +
 kernel/module/debug_kmemleak.c                |   30 +
 .../decompress.c}                             |    2 +-
 kernel/module/internal.h                      |  236 +++
 kernel/module/kallsyms.c                      |  502 +++++
 kernel/module/livepatch.c                     |   74 +
 kernel/{module.c => module/main.c}            | 1874 +----------------
 kernel/module/procfs.c                        |  142 ++
 .../signature.c}                              |    0
 kernel/module/signing.c                       |  120 ++
 kernel/module/strict_rwx.c                    |   83 +
 kernel/module/sysfs.c                         |  425 ++++
 kernel/module/tree_lookup.c                   |  109 +
 kernel/module/version.c                       |  110 +
 kernel/module_signing.c                       |   45 -
 21 files changed, 2038 insertions(+), 1904 deletions(-)
 delete mode 100644 kernel/module-internal.h
 create mode 100644 kernel/module/Makefile
 create mode 100644 kernel/module/arch_strict_rwx.c
 create mode 100644 kernel/module/debug_kmemleak.c
 rename kernel/{module_decompress.c => module/decompress.c} (99%)
 create mode 100644 kernel/module/internal.h
 create mode 100644 kernel/module/kallsyms.c
 create mode 100644 kernel/module/livepatch.c
 rename kernel/{module.c => module/main.c} (63%)
 create mode 100644 kernel/module/procfs.c
 rename kernel/{module_signature.c => module/signature.c} (100%)
 create mode 100644 kernel/module/signing.c
 create mode 100644 kernel/module/strict_rwx.c
 create mode 100644 kernel/module/sysfs.c
 create mode 100644 kernel/module/tree_lookup.c
 create mode 100644 kernel/module/version.c
 delete mode 100644 kernel/module_signing.c


base-commit: a97ac8cb24a3c3ad74794adb83717ef1605d1b47
-- 
2.34.1


^ permalink raw reply	[flat|nested] 44+ messages in thread
* [RFC PATCH v4 01/13] module: Move all into module/
@ 2022-01-31 12:45 Aaron Tomlin
  0 siblings, 0 replies; 44+ messages in thread
From: Aaron Tomlin @ 2022-01-31 12:45 UTC (permalink / raw)
  To: lkp

[-- Attachment #1: Type: text/plain, Size: 4582 bytes --]

No functional changes.

This patch moves all module related code into a separate directory,
modifies each file name and creates a new Makefile. Note: this effort
is in preparation to refactor core module code.

Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
---
 MAINTAINERS                                         | 2 +-
 kernel/Makefile                                     | 5 +----
 kernel/module/Makefile                              | 9 +++++++++
 kernel/{module_decompress.c => module/decompress.c} | 2 +-
 kernel/{module-internal.h => module/internal.h}     | 0
 kernel/{module.c => module/main.c}                  | 2 +-
 kernel/{module_signature.c => module/signature.c}   | 0
 kernel/{module_signing.c => module/signing.c}       | 2 +-
 8 files changed, 14 insertions(+), 8 deletions(-)
 create mode 100644 kernel/module/Makefile
 rename kernel/{module_decompress.c => module/decompress.c} (99%)
 rename kernel/{module-internal.h => module/internal.h} (100%)
 rename kernel/{module.c => module/main.c} (99%)
 rename kernel/{module_signature.c => module/signature.c} (100%)
 rename kernel/{module_signing.c => module/signing.c} (97%)

diff --git a/MAINTAINERS b/MAINTAINERS
index acd112c42255..a98f4700acb7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12976,7 +12976,7 @@ L:	linux-kernel(a)vger.kernel.org
 S:	Maintained
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
 F:	include/linux/module.h
-F:	kernel/module.c
+F:	kernel/module/main.c
 
 MONOLITHIC POWER SYSTEM PMIC DRIVER
 M:	Saravanan Sekar <sravanhome@gmail.com>
diff --git a/kernel/Makefile b/kernel/Makefile
index 56f4ee97f328..3a6380975c57 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -53,6 +53,7 @@ obj-y += rcu/
 obj-y += livepatch/
 obj-y += dma/
 obj-y += entry/
+obj-y += module/
 
 obj-$(CONFIG_KCMP) += kcmp.o
 obj-$(CONFIG_FREEZER) += freezer.o
@@ -66,10 +67,6 @@ ifneq ($(CONFIG_SMP),y)
 obj-y += up.o
 endif
 obj-$(CONFIG_UID16) += uid16.o
-obj-$(CONFIG_MODULES) += module.o
-obj-$(CONFIG_MODULE_DECOMPRESS) += module_decompress.o
-obj-$(CONFIG_MODULE_SIG) += module_signing.o
-obj-$(CONFIG_MODULE_SIG_FORMAT) += module_signature.o
 obj-$(CONFIG_KALLSYMS) += kallsyms.o
 obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
 obj-$(CONFIG_CRASH_CORE) += crash_core.o
diff --git a/kernel/module/Makefile b/kernel/module/Makefile
new file mode 100644
index 000000000000..2902fc7d0ef1
--- /dev/null
+++ b/kernel/module/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Makefile for linux kernel module support
+#
+
+obj-$(CONFIG_MODULES) += main.o
+obj-$(CONFIG_MODULE_DECOMPRESS) += decompress.o
+obj-$(CONFIG_MODULE_SIG) += signing.o
+obj-$(CONFIG_MODULE_SIG_FORMAT) += signature.o
diff --git a/kernel/module_decompress.c b/kernel/module/decompress.c
similarity index 99%
rename from kernel/module_decompress.c
rename to kernel/module/decompress.c
index b01c69c2ff99..c153fd8a4444 100644
--- a/kernel/module_decompress.c
+++ b/kernel/module/decompress.c
@@ -12,7 +12,7 @@
 #include <linux/sysfs.h>
 #include <linux/vmalloc.h>
 
-#include "module-internal.h"
+#include "internal.h"
 
 static int module_extend_max_pages(struct load_info *info, unsigned int extent)
 {
diff --git a/kernel/module-internal.h b/kernel/module/internal.h
similarity index 100%
rename from kernel/module-internal.h
rename to kernel/module/internal.h
diff --git a/kernel/module.c b/kernel/module/main.c
similarity index 99%
rename from kernel/module.c
rename to kernel/module/main.c
index 387ee77bdbd6..d8c6269af6cf 100644
--- a/kernel/module.c
+++ b/kernel/module/main.c
@@ -58,7 +58,7 @@
 #include <linux/dynamic_debug.h>
 #include <linux/audit.h>
 #include <uapi/linux/module.h>
-#include "module-internal.h"
+#include "internal.h"
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/module.h>
diff --git a/kernel/module_signature.c b/kernel/module/signature.c
similarity index 100%
rename from kernel/module_signature.c
rename to kernel/module/signature.c
diff --git a/kernel/module_signing.c b/kernel/module/signing.c
similarity index 97%
rename from kernel/module_signing.c
rename to kernel/module/signing.c
index 8723ae70ea1f..8aeb6d2ee94b 100644
--- a/kernel/module_signing.c
+++ b/kernel/module/signing.c
@@ -12,7 +12,7 @@
 #include <linux/string.h>
 #include <linux/verification.h>
 #include <crypto/public_key.h>
-#include "module-internal.h"
+#include "internal.h"
 
 /*
  * Verify the signature on a module.
-- 
2.34.1

^ permalink raw reply related	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2022-02-09 14:40 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-30 21:32 [RFC PATCH v4 00/13] module: core code clean up Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 01/13] module: Move all into module/ Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 02/13] module: Simple refactor in preparation for split Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 03/13] module: Move livepatch support to a separate file Aaron Tomlin
2022-01-30 23:50   ` kernel test robot
2022-02-08 11:42   ` Petr Mladek
2022-02-08 15:18     ` Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 04/13] module: Move latched RB-tree " Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 05/13] module: Move arch strict rwx " Aaron Tomlin
2022-01-30 23:50   ` kernel test robot
2022-01-30 21:32 ` [RFC PATCH v4 06/13] module: Move " Aaron Tomlin
2022-01-31  0:30   ` kernel test robot
2022-01-30 21:32 ` [RFC PATCH v4 07/13] module: Move extra signature support out of core code Aaron Tomlin
2022-02-09 14:28   ` Miroslav Benes
2022-02-09 14:37     ` Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 08/13] module: Move kmemleak support to a separate file Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 09/13] module: Move kallsyms support into " Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 10/13] module: Move procfs " Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 11/13] module: Move sysfs " Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 12/13] module: Move kdb_modules list out of core code Aaron Tomlin
2022-01-30 21:32 ` [RFC PATCH v4 13/13] module: Move version support into a separate file Aaron Tomlin
2022-01-31  0:41   ` kernel test robot
2022-02-01 16:44 ` [RFC PATCH v4 00/13] module: core code clean up Allen
2022-02-05 20:33   ` Aaron Tomlin
2022-02-02  2:44 ` Luis Chamberlain
2022-02-06 14:40   ` Aaron Tomlin
2022-02-03  0:20 ` Luis Chamberlain
2022-02-03  7:48   ` Christophe Leroy
2022-02-06 14:45     ` Aaron Tomlin
2022-02-03 18:01   ` Christophe Leroy
2022-02-06 16:54     ` Aaron Tomlin
2022-02-07 16:46     ` Aaron Tomlin
2022-02-07 17:17       ` Christophe Leroy
2022-02-07 18:01         ` Aaron Tomlin
2022-02-08  7:50           ` Christophe Leroy
2022-02-08 10:05             ` Aaron Tomlin
2022-02-03 18:15   ` Christophe Leroy
2022-02-06 16:57     ` Aaron Tomlin
2022-02-03 19:43   ` Michal Suchánek
2022-02-03 20:13     ` Luis Chamberlain
2022-02-03 20:10   ` Luis Chamberlain
2022-02-06 17:00     ` Aaron Tomlin
2022-02-06 14:42   ` Aaron Tomlin
  -- strict thread matches above, loose matches on Subject: below --
2022-01-31 12:45 [RFC PATCH v4 01/13] module: Move all into module/ Aaron Tomlin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.