selinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/34] Rework the LSM initialization
@ 2025-07-21 23:21 Paul Moore
  2025-07-21 23:21 ` [RFC PATCH v2 01/34] lsm: split the notifier code out into lsm_notifier.c Paul Moore
                   ` (33 more replies)
  0 siblings, 34 replies; 77+ messages in thread
From: Paul Moore @ 2025-07-21 23:21 UTC (permalink / raw)
  To: linux-security-module, linux-integrity, selinux
  Cc: John Johansen, Mimi Zohar, Roberto Sassu, Fan Wu,
	Mickaël Salaün, Günther Noack, Kees Cook,
	Micah Morton, Casey Schaufler, Tetsuo Handa, Nicolas Bouchinet,
	Xiu Jianfeng

It's taken a few months to prepare the second RFC for posting, mostly
because of the sorry state of the first RFC, although as discussed
earlier, there was a reason for that.  There is a CHANGELOG below with
an itemized list of the changes between RFC/v1 and this posting, but
you can summarize it into three basic things: adding proper commit
descriptions, decomposing some of the uglier patches into smaller
coherent patches that make more sense, and dropping the subject/object
counting code as Casey found a different approach that fits his needs.
I've added the ACKs/Reviewed-by/etc. tags from the first posting, but
left some off as the associated patches changed enough that I felt it
was no longer responsible to include them.  Additional review is always
welcome and encouraged.

The RFC/v1 patchset is linked below, the cover letter provides some
background and motivation for this series which still applies.

https://lore.kernel.org/linux-security-module/20250409185019.238841-31-paul@paul-moore.com/

CHANGELOG
RFC/v2:
- rename lsm_prep_single() to lsm_prepare()
- drop the lsm_prop counting patch
- drop the platform_certs changes from the IMA/EVM patch (Mimi)
- split/reorder anough patches in the patchset that I lost track
- added missing function comment blocks in the SELinux patches
- split patch 04/29 into smaller patches (Kees)
- fix an LSM list output problem in an intermediate patch (Kees)
- preserve the "lsm_active_cnt" variable name (Casey)
- cache the lsm_read() string (Kees)
- squashed, split, and reordered the enabled/ordering patches
- reworked the Smack patch (Casey)
- conditionalized the SELinux IB init code (Stephen)
- fixed missing Smack "__init" annotation (Fan)
- fixed a potential unused variable warning in IMA/EVM (John)
- fixed the placeholder commit descriptions (various)
RFC/v1:
- initial version

--
Paul Moore (34):
      lsm: split the notifier code out into lsm_notifier.c
      lsm: split the init code out into lsm_init.c
      lsm: consolidate lsm_allowed() and prepare_lsm() into
         lsm_prepare()
      lsm: introduce looping macros for the initialization code
      lsm: integrate report_lsm_order() code into caller
      lsm: integrate lsm_early_cred() and lsm_early_task() into caller
      lsm: rename ordered_lsm_init() to lsm_init_ordered()
      lsm: replace the name field with a pointer to the lsm_id struct
      lsm: rename the lsm order variables for consistency
      lsm: rework lsm_active_cnt and lsm_idlist[]
      lsm: get rid of the lsm_names list and do some cleanup
      lsm: rework the LSM enable/disable setter/getter functions
      lsm: rename exists_ordered_lsm() to lsm_order_exists()
      lsm: rename/rework append_ordered_lsm() into lsm_order_append()
      lsm: rename/rework ordered_lsm_parse() to lsm_order_parse()
      lsm: cleanup the LSM blob size code
      lsm: cleanup initialize_lsm() and rename to lsm_init_single()
      lsm: fold lsm_init_ordered() into security_init()
      lsm: add/tweak function header comment blocks in lsm_init.c
      lsm: cleanup the debug and console output in lsm_init.c
      lsm: output available LSMs when debugging
      lsm: group lsm_order_parse() with the other lsm_order_*()
         functions
      lsm: introduce an initcall mechanism into the LSM framework
      loadpin: move initcalls to the LSM framework
      ipe: move initcalls to the LSM framework
      smack: move initcalls to the LSM framework
      tomoyo: move initcalls to the LSM framework
      safesetid: move initcalls to the LSM framework
      apparmor: move initcalls to the LSM framework
      lockdown: move initcalls to the LSM framework
      ima,evm: move initcalls to the LSM framework
      selinux: move initcalls to the LSM framework
      lsm: consolidate all of the LSM framework initcalls
      lsm: add a LSM_STARTED_ALL notification event

 include/linux/lsm_hooks.h              |   67 +-
 include/linux/security.h               |    3 
 security/Makefile                      |    2 
 security/apparmor/apparmorfs.c         |    4 
 security/apparmor/crypto.c             |    4 
 security/apparmor/include/apparmorfs.h |    2 
 security/apparmor/include/crypto.h     |    1 
 security/apparmor/lsm.c                |   11 
 security/bpf/hooks.c                   |    2 
 security/commoncap.c                   |    2 
 security/inode.c                       |   62 ++
 security/integrity/Makefile            |    2 
 security/integrity/evm/evm_main.c      |    8 
 security/integrity/iint.c              |    4 
 security/integrity/ima/ima_main.c      |    8 
 security/integrity/initcalls.c         |   41 +
 security/integrity/initcalls.h         |   13 
 security/ipe/fs.c                      |    4 
 security/ipe/ipe.c                     |    3 
 security/ipe/ipe.h                     |    2 
 security/landlock/setup.c              |    2 
 security/loadpin/loadpin.c             |   15 
 security/lockdown/lockdown.c           |    5 
 security/lsm.h                         |   42 +
 security/lsm_init.c                    |  557 ++++++++++++++++++++++
 security/lsm_notifier.c                |   31 +
 security/lsm_syscalls.c                |    2 
 security/min_addr.c                    |    5 
 security/safesetid/lsm.c               |    3 
 security/safesetid/lsm.h               |    2 
 security/safesetid/securityfs.c        |    3 
 security/security.c                    |  617 +------------------------
 security/selinux/Makefile              |    2 
 security/selinux/hooks.c               |   11 
 security/selinux/ibpkey.c              |    5 
 security/selinux/include/audit.h       |    9 
 security/selinux/include/initcalls.h   |   19 
 security/selinux/initcalls.c           |   52 ++
 security/selinux/netif.c               |    5 
 security/selinux/netlink.c             |    5 
 security/selinux/netnode.c             |    5 
 security/selinux/netport.c             |    5 
 security/selinux/selinuxfs.c           |    5 
 security/selinux/ss/services.c         |   26 -
 security/smack/smack.h                 |    7 
 security/smack/smack_lsm.c             |   11 
 security/smack/smack_netfilter.c       |    4 
 security/smack/smackfs.c               |    4 
 security/tomoyo/common.h               |    2 
 security/tomoyo/securityfs_if.c        |    4 
 security/tomoyo/tomoyo.c               |    3 
 security/yama/yama_lsm.c               |    2 
 52 files changed, 1012 insertions(+), 703 deletions(-)


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

end of thread, other threads:[~2025-07-28 23:56 UTC | newest]

Thread overview: 77+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-21 23:21 [RFC PATCH v2 0/34] Rework the LSM initialization Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 01/34] lsm: split the notifier code out into lsm_notifier.c Paul Moore
2025-07-24 14:49   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 02/34] lsm: split the init code out into lsm_init.c Paul Moore
2025-07-24 14:50   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 03/34] lsm: consolidate lsm_allowed() and prepare_lsm() into lsm_prepare() Paul Moore
2025-07-24 14:52   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 04/34] lsm: introduce looping macros for the initialization code Paul Moore
2025-07-24 15:10   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 05/34] lsm: integrate report_lsm_order() code into caller Paul Moore
2025-07-24 15:19   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 06/34] lsm: integrate lsm_early_cred() and lsm_early_task() " Paul Moore
2025-07-24 15:20   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 07/34] lsm: rename ordered_lsm_init() to lsm_init_ordered() Paul Moore
2025-07-24 15:28   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 08/34] lsm: replace the name field with a pointer to the lsm_id struct Paul Moore
2025-07-24 15:30   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 09/34] lsm: rename the lsm order variables for consistency Paul Moore
2025-07-24 15:31   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 10/34] lsm: rework lsm_active_cnt and lsm_idlist[] Paul Moore
2025-07-24 15:34   ` Casey Schaufler
2025-07-25  0:26     ` Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 11/34] lsm: get rid of the lsm_names list and do some cleanup Paul Moore
2025-07-24 15:39   ` Casey Schaufler
2025-07-25  2:28     ` Paul Moore
2025-07-25 14:26       ` Casey Schaufler
2025-07-25 16:42         ` Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 12/34] lsm: rework the LSM enable/disable setter/getter functions Paul Moore
2025-07-24 15:44   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 13/34] lsm: rename exists_ordered_lsm() to lsm_order_exists() Paul Moore
2025-07-24 15:45   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 14/34] lsm: rename/rework append_ordered_lsm() into lsm_order_append() Paul Moore
2025-07-24 15:47   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 15/34] lsm: rename/rework ordered_lsm_parse() to lsm_order_parse() Paul Moore
2025-07-24 15:48   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 16/34] lsm: cleanup the LSM blob size code Paul Moore
2025-07-24 23:28   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 17/34] lsm: cleanup initialize_lsm() and rename to lsm_init_single() Paul Moore
2025-07-24 23:29   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 18/34] lsm: fold lsm_init_ordered() into security_init() Paul Moore
2025-07-24 23:30   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 19/34] lsm: add/tweak function header comment blocks in lsm_init.c Paul Moore
2025-07-24 23:31   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 20/34] lsm: cleanup the debug and console output " Paul Moore
2025-07-24 23:32   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 21/34] lsm: output available LSMs when debugging Paul Moore
2025-07-24 23:33   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 22/34] lsm: group lsm_order_parse() with the other lsm_order_*() functions Paul Moore
2025-07-24 23:34   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 23/34] lsm: introduce an initcall mechanism into the LSM framework Paul Moore
2025-07-24 23:35   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 24/34] loadpin: move initcalls to " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 25/34] ipe: " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 26/34] smack: " Paul Moore
2025-07-24 23:36   ` Casey Schaufler
2025-07-28  9:46   ` Roberto Sassu
2025-07-28 22:34     ` Paul Moore
2025-07-28 23:56       ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 27/34] tomoyo: " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 28/34] safesetid: " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 29/34] apparmor: " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 30/34] lockdown: " Paul Moore
2025-07-25  8:12   ` Xiu Jianfeng
2025-07-25 16:51     ` Paul Moore
2025-07-26  9:38       ` xiujianfeng
2025-07-28 21:49         ` Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 31/34] ima,evm: " Paul Moore
2025-07-21 23:30   ` Paul Moore
2025-07-21 23:34     ` Paul Moore
2025-07-28  9:46   ` Nicolas Bouchinet
2025-07-28 10:43     ` Roberto Sassu
2025-07-28 23:17       ` Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 32/34] selinux: " Paul Moore
2025-07-21 23:21 ` [RFC PATCH v2 33/34] lsm: consolidate all of the LSM framework initcalls Paul Moore
2025-07-24 23:37   ` Casey Schaufler
2025-07-21 23:21 ` [RFC PATCH v2 34/34] lsm: add a LSM_STARTED_ALL notification event Paul Moore
2025-07-24 23:38   ` Casey Schaufler

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).