]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - ipc/sem.c
ipc: simplify rcu_read_lock() in semctl_nolock()
[karo-tx-linux.git] / ipc / sem.c
index f2151babd26a7688ccc638b7a4dd35dd6022e5bb..899b598b63be30bb70f1182edb2b9b91a5e50bd9 100644 (file)
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -948,8 +948,8 @@ static int semctl_nolock(struct ipc_namespace *ns, int semid,
 
                memset(&tbuf, 0, sizeof(tbuf));
 
+               rcu_read_lock();
                if (cmd == SEM_STAT) {
-                       rcu_read_lock();
                        sma = sem_obtain_object(ns, semid);
                        if (IS_ERR(sma)) {
                                err = PTR_ERR(sma);
@@ -957,7 +957,6 @@ static int semctl_nolock(struct ipc_namespace *ns, int semid,
                        }
                        id = sma->sem_perm.id;
                } else {
-                       rcu_read_lock();
                        sma = sem_obtain_object_check(ns, semid);
                        if (IS_ERR(sma)) {
                                err = PTR_ERR(sma);