[PATCH v4 0/2] module: Introduce module unload taint tracking

From: Aaron Tomlin
Date: Mon Apr 25 2022 - 05:09:01 EST

Hi Luis,

This iteration is still based on the latest mcgrof/modules-next branch.

I have decided still to use RCU even though no entry is ever removed from
the unloaded tainted modules list. That being said, if I understand
correctly, it is not safe in some instances to use 'module_mutex' in
print_modules(). So instead we disable preemption to ensure list traversal
with concurrent list manipulation e.g. list_add_rcu(), is safe too.

Changes since v3 [1]
- Fixed kernel build error reported by kernel test robot i.e. moved
'#endif' outside 'if (!list_empty(&unloaded_tainted_modules))'
statement in the context of print_modules()
- Used strncmp() instead of memcmp()
(Oleksandr Natalenko)
- Removed the additional strlen()
(Christoph Lameter)

Changes since v2 [2]
- Dropped RFC from subject
- Removed the newline i.e. "\n" in printk()
- Always include the tainted module's unload count
- Unconditionally display each unloaded tainted module

Please let me know your thoughts.

[1]: https://lore.kernel.org/all/20220420115257.3498300-1-atomlin@xxxxxxxxxx/
[2]: https://lore.kernel.org/all/20220419150334.3395019-1-atomlin@xxxxxxxxxx/

Aaron Tomlin (2):
module: Make module_flags_taint() accept a module's taints bitmap
module: Introduce module unload taint tracking

init/Kconfig | 11 +++++++
kernel/module/main.c | 73 +++++++++++++++++++++++++++++++++++++++++---
2 files changed, 80 insertions(+), 4 deletions(-)

base-commit: eeaec7801c421e17edda6e45a32d4a5596b633da