From 9cbda102d0c6f254eab36fc5e9cbc3139f64fdc0 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Mon, 9 Aug 2010 17:20:30 -0700 Subject: [PATCH] --- yaml --- r: 207300 b: refs/heads/master c: 2ee7c922f20c96dba56fd378a466790d87f42e84 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/exec_domain.c | 22 +++++----------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 342630ebf678..04f23db110d9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5bf1d290b57e392eaf4bfb15c67f315fce4140be +refs/heads/master: 2ee7c922f20c96dba56fd378a466790d87f42e84 diff --git a/trunk/kernel/exec_domain.c b/trunk/kernel/exec_domain.c index dd62f8e714ca..0dbeae374225 100644 --- a/trunk/kernel/exec_domain.c +++ b/trunk/kernel/exec_domain.c @@ -134,23 +134,14 @@ unregister_exec_domain(struct exec_domain *ep) return 0; } -int -__set_personality(unsigned int personality) +int __set_personality(unsigned int personality) { - struct exec_domain *ep, *oep; - - ep = lookup_exec_domain(personality); - if (ep == current_thread_info()->exec_domain) { - current->personality = personality; - module_put(ep->module); - return 0; - } + struct exec_domain *oep = current_thread_info()->exec_domain; + current_thread_info()->exec_domain = lookup_exec_domain(personality); current->personality = personality; - oep = current_thread_info()->exec_domain; - current_thread_info()->exec_domain = ep; - module_put(oep->module); + return 0; } @@ -192,11 +183,8 @@ SYSCALL_DEFINE1(personality, unsigned int, personality) { unsigned int old = current->personality; - if (personality != 0xffffffff) { + if (personality != 0xffffffff) set_personality(personality); - if (current->personality != personality) - return -EINVAL; - } return old; }