diff options
| author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2011-03-18 00:09:35 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-07-20 17:10:16 -0400 |
| commit | 693a8b6eecce1a0cfe91a469e85c56016dc1cc53 (patch) | |
| tree | eb96b13432d0e8933b71ed84f5bd5ee4df6a5687 /ipc | |
| parent | 449a68cc656fddeda448e324c57062a19cf451b9 (diff) | |
ipc,rcu: Convert call_rcu(free_un) to kfree_rcu()
The rcu callback free_un() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(free_un).
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Manfred Spraul <manfred@colorfullife.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'ipc')
| -rw-r--r-- | ipc/sem.c | 10 |
1 files changed, 2 insertions, 8 deletions
| @@ -689,12 +689,6 @@ static int count_semzcnt (struct sem_array * sma, ushort semnum) | |||
| 689 | return semzcnt; | 689 | return semzcnt; |
| 690 | } | 690 | } |
| 691 | 691 | ||
| 692 | static void free_un(struct rcu_head *head) | ||
| 693 | { | ||
| 694 | struct sem_undo *un = container_of(head, struct sem_undo, rcu); | ||
| 695 | kfree(un); | ||
| 696 | } | ||
| 697 | |||
| 698 | /* Free a semaphore set. freeary() is called with sem_ids.rw_mutex locked | 692 | /* Free a semaphore set. freeary() is called with sem_ids.rw_mutex locked |
| 699 | * as a writer and the spinlock for this semaphore set hold. sem_ids.rw_mutex | 693 | * as a writer and the spinlock for this semaphore set hold. sem_ids.rw_mutex |
| 700 | * remains locked on exit. | 694 | * remains locked on exit. |
| @@ -714,7 +708,7 @@ static void freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) | |||
| 714 | un->semid = -1; | 708 | un->semid = -1; |
| 715 | list_del_rcu(&un->list_proc); | 709 | list_del_rcu(&un->list_proc); |
| 716 | spin_unlock(&un->ulp->lock); | 710 | spin_unlock(&un->ulp->lock); |
| 717 | call_rcu(&un->rcu, free_un); | 711 | kfree_rcu(un, rcu); |
| 718 | } | 712 | } |
| 719 | 713 | ||
| 720 | /* Wake up all pending processes and let them fail with EIDRM. */ | 714 | /* Wake up all pending processes and let them fail with EIDRM. */ |
| @@ -1612,7 +1606,7 @@ void exit_sem(struct task_struct *tsk) | |||
| 1612 | sem_unlock(sma); | 1606 | sem_unlock(sma); |
| 1613 | wake_up_sem_queue_do(&tasks); | 1607 | wake_up_sem_queue_do(&tasks); |
| 1614 | 1608 | ||
| 1615 | call_rcu(&un->rcu, free_un); | 1609 | kfree_rcu(un, rcu); |
| 1616 | } | 1610 | } |
| 1617 | kfree(ulp); | 1611 | kfree(ulp); |
| 1618 | } | 1612 | } |
