Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 905dd707 authored by Aaron Tomlin's avatar Aaron Tomlin Committed by Jessica Yu
Browse files

module: When modifying a module's text ignore modules which are going away too



By default, during the access permission modification of a module's core
and init pages, we only ignore modules that are malformed. Albeit for a
module which is going away, it does not make sense to change its text to
RO since the module should be RW, before deallocation.

This patch makes set_all_modules_text_ro() skip modules which are going
away too.

Signed-off-by: default avatarAaron Tomlin <atomlin@redhat.com>
Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Link: http://lkml.kernel.org/r/1477560966-781-1-git-send-email-atomlin@redhat.com


[jeyu@redhat.com: add comment as suggested by Steven Rostedt]
Signed-off-by: default avatarJessica Yu <jeyu@redhat.com>
parent 885a78d4
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1958,7 +1958,13 @@ void set_all_modules_text_ro(void)

	mutex_lock(&module_mutex);
	list_for_each_entry_rcu(mod, &modules, list) {
		if (mod->state == MODULE_STATE_UNFORMED)
		/*
		 * Ignore going modules since it's possible that ro
		 * protection has already been disabled, otherwise we'll
		 * run into protection faults at module deallocation.
		 */
		if (mod->state == MODULE_STATE_UNFORMED ||
			mod->state == MODULE_STATE_GOING)
			continue;

		frob_text(&mod->core_layout, set_memory_ro);