Re: [PATCH] IMA: use list_splice_tail_init_rcu() instead of its open coded variant

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux