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

Commit 53b626f9 authored by Petko Manolov's avatar Petko Manolov Committed by Mimi Zohar
Browse files

IMA: use list_splice_tail_init_rcu() instead of its open coded variant



Use list_splice_tail_init_rcu() to extend the existing custom IMA policy
with additional IMA policy rules.

Signed-off-by: default avatarPetko Manolov <petko.manolov@konsulko.com>
Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
parent b4df8608
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -527,22 +527,9 @@ int ima_check_policy(void)
 */
void ima_update_policy(void)
{
	struct list_head *first, *last, *policy;
	struct list_head *policy = &ima_policy_rules;

	/* append current policy with the new rules */
	first = (&ima_temp_rules)->next;
	last = (&ima_temp_rules)->prev;
	policy = &ima_policy_rules;

	synchronize_rcu();

	last->next = policy;
	rcu_assign_pointer(list_next_rcu(policy->prev), first);
	first->prev = policy->prev;
	policy->prev = last;

	/* prepare for the next policy rules addition */
	INIT_LIST_HEAD(&ima_temp_rules);
	list_splice_tail_init_rcu(&ima_temp_rules, policy, synchronize_rcu);

	if (ima_rules != policy) {
		ima_policy_flag = 0;