diff options
Diffstat (limited to 'kernel/exec_domain.c')
| -rw-r--r-- | kernel/exec_domain.c | 38 | 
1 files changed, 13 insertions, 25 deletions
| diff --git a/kernel/exec_domain.c b/kernel/exec_domain.c index c35452cadde..0dbeae37422 100644 --- a/kernel/exec_domain.c +++ b/kernel/exec_domain.c @@ -27,7 +27,7 @@ static struct exec_domain *exec_domains = &default_exec_domain;  static DEFINE_RWLOCK(exec_domains_lock); -static u_long ident_map[32] = { +static unsigned long ident_map[32] = {  	0,	1,	2,	3,	4,	5,	6,	7,  	8,	9,	10,	11,	12,	13,	14,	15,  	16,	17,	18,	19,	20,	21,	22,	23, @@ -56,10 +56,10 @@ default_handler(int segment, struct pt_regs *regp)  }  static struct exec_domain * -lookup_exec_domain(u_long personality) +lookup_exec_domain(unsigned int personality)  { -	struct exec_domain *	ep; -	u_long			pers = personality(personality); +	unsigned int pers = personality(personality); +	struct exec_domain *ep;  	read_lock(&exec_domains_lock);  	for (ep = exec_domains; ep; ep = ep->next) { @@ -70,7 +70,7 @@ lookup_exec_domain(u_long personality)  #ifdef CONFIG_MODULES  	read_unlock(&exec_domains_lock); -	request_module("personality-%ld", pers); +	request_module("personality-%d", pers);  	read_lock(&exec_domains_lock);  	for (ep = exec_domains; ep; ep = ep->next) { @@ -134,23 +134,14 @@ unregister:  	return 0;  } -int -__set_personality(u_long 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;  } @@ -188,17 +179,14 @@ static int __init proc_execdomains_init(void)  module_init(proc_execdomains_init);  #endif -SYSCALL_DEFINE1(personality, u_long, personality) +SYSCALL_DEFINE1(personality, unsigned int, personality)  { -	u_long old = current->personality; +	unsigned int old = current->personality; -	if (personality != 0xffffffff) { +	if (personality != 0xffffffff)  		set_personality(personality); -		if (current->personality != personality) -			return -EINVAL; -	} -	return (long)old; +	return old;  } | 
