From c55f8dc993b17926699794c5d9c94c7c25f1a237 Mon Sep 17 00:00:00 2001 From: Lai Jiangshan Date: Fri, 18 Mar 2011 12:09:35 +0800 Subject: [PATCH] --- yaml --- r: 257007 b: refs/heads/master c: 693a8b6eecce1a0cfe91a469e85c56016dc1cc53 h: refs/heads/master i: 257005: b03d69d9990f6240b486ec6951d76aa6b6fec050 257003: 00eb0c8c3f46187fb8c536162132908fc7395bd1 256999: 4c3e610170004a6900507aa2100eab69d19f2f98 256991: 0abe053ebe81f6e74592b25a0ea07fab1b39dfbf v: v3 --- [refs] | 2 +- trunk/ipc/sem.c | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 6c517576d282..5cf43a7803a5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 449a68cc656fddeda448e324c57062a19cf451b9 +refs/heads/master: 693a8b6eecce1a0cfe91a469e85c56016dc1cc53 diff --git a/trunk/ipc/sem.c b/trunk/ipc/sem.c index 34193ed69fbe..8b929e6a6eda 100644 --- a/trunk/ipc/sem.c +++ b/trunk/ipc/sem.c @@ -689,12 +689,6 @@ static int count_semzcnt (struct sem_array * sma, ushort semnum) return semzcnt; } -static void free_un(struct rcu_head *head) -{ - struct sem_undo *un = container_of(head, struct sem_undo, rcu); - kfree(un); -} - /* Free a semaphore set. freeary() is called with sem_ids.rw_mutex locked * as a writer and the spinlock for this semaphore set hold. sem_ids.rw_mutex * remains locked on exit. @@ -714,7 +708,7 @@ static void freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) un->semid = -1; list_del_rcu(&un->list_proc); spin_unlock(&un->ulp->lock); - call_rcu(&un->rcu, free_un); + kfree_rcu(un, rcu); } /* Wake up all pending processes and let them fail with EIDRM. */ @@ -1612,7 +1606,7 @@ void exit_sem(struct task_struct *tsk) sem_unlock(sma); wake_up_sem_queue_do(&tasks); - call_rcu(&un->rcu, free_un); + kfree_rcu(un, rcu); } kfree(ulp); }