Hi Petko, On Tue, 2018-05-22 at 17:06 +0300, Petko Manolov wrote: The patch description is missing. Is the following ok? Use list_splice_tail_init_rcu() to extend the existing custom IMA policy with additional IMA policy rules. Mimi > > Signed-off-by: Petko Manolov <petko.manolov@xxxxxxxxxxxx> > --- > security/integrity/ima/ima_policy.c | 17 ++--------------- > 1 file changed, 2 insertions(+), 15 deletions(-) > > diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c > index d89bebf85421..722466f843ef 100644 > --- a/security/integrity/ima/ima_policy.c > +++ b/security/integrity/ima/ima_policy.c > @@ -509,22 +509,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;