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

Commit de96d79f authored by Andrey Tsyvarev's avatar Andrey Tsyvarev Committed by Rusty Russell
Browse files

kernel/module.c: Free lock-classes if parse_args failed



parse_args call module parameters' .set handlers, which may use locks defined in the module.
So, these classes should be freed in case parse_args returns error(e.g. due to incorrect parameter passed).

Signed-off-by: default avatarAndrey Tsyvarev <tsyvarev@ispras.ru>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 5d8591bc
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -3356,6 +3356,9 @@ static int load_module(struct load_info *info, const char __user *uargs,
	module_bug_cleanup(mod);
	mutex_unlock(&module_mutex);

	/* Free lock-classes: */
	lockdep_free_key_range(mod->module_core, mod->core_size);

	/* we can't deallocate the module until we clear memory protection */
	unset_module_init_ro_nx(mod);
	unset_module_core_ro_nx(mod);