This fixes:
incompatible pointer type:  => 89
       arch/um/kernel/exec.c: warning: passing argument 2 of 'execve1' from
incompatible pointer type:  => 69, 85
       arch/um/kernel/exec.c: warning: passing argument 3 of 'execve1' from
incompatible pointer type:  => 69, 85
which was introduced by d7627467b7 ("Make do_execve() take a const
filename pointer")
Signed-off-by: Richard Weinberger <richard@nod.at>
Cc: David Howells <dhowells@redhat.com>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
	
			
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 | 
						|
 * Licensed under the GPL
 | 
						|
 */
 | 
						|
 | 
						|
#include "linux/file.h"
 | 
						|
#include "linux/fs.h"
 | 
						|
#include "linux/mm.h"
 | 
						|
#include "linux/sched.h"
 | 
						|
#include "linux/utsname.h"
 | 
						|
#include "linux/syscalls.h"
 | 
						|
#include "asm/current.h"
 | 
						|
#include "asm/mman.h"
 | 
						|
#include "asm/uaccess.h"
 | 
						|
#include "asm/unistd.h"
 | 
						|
#include "internal.h"
 | 
						|
 | 
						|
long sys_fork(void)
 | 
						|
{
 | 
						|
	long ret;
 | 
						|
 | 
						|
	current->thread.forking = 1;
 | 
						|
	ret = do_fork(SIGCHLD, UPT_SP(¤t->thread.regs.regs),
 | 
						|
		      ¤t->thread.regs, 0, NULL, NULL);
 | 
						|
	current->thread.forking = 0;
 | 
						|
	return ret;
 | 
						|
}
 | 
						|
 | 
						|
long sys_vfork(void)
 | 
						|
{
 | 
						|
	long ret;
 | 
						|
 | 
						|
	current->thread.forking = 1;
 | 
						|
	ret = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
 | 
						|
		      UPT_SP(¤t->thread.regs.regs),
 | 
						|
		      ¤t->thread.regs, 0, NULL, NULL);
 | 
						|
	current->thread.forking = 0;
 | 
						|
	return ret;
 | 
						|
}
 | 
						|
 | 
						|
long old_mmap(unsigned long addr, unsigned long len,
 | 
						|
	      unsigned long prot, unsigned long flags,
 | 
						|
	      unsigned long fd, unsigned long offset)
 | 
						|
{
 | 
						|
	long err = -EINVAL;
 | 
						|
	if (offset & ~PAGE_MASK)
 | 
						|
		goto out;
 | 
						|
 | 
						|
	err = sys_mmap_pgoff(addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
 | 
						|
 out:
 | 
						|
	return err;
 | 
						|
}
 | 
						|
 | 
						|
int kernel_execve(const char *filename,
 | 
						|
		  const char *const argv[],
 | 
						|
		  const char *const envp[])
 | 
						|
{
 | 
						|
	mm_segment_t fs;
 | 
						|
	int ret;
 | 
						|
 | 
						|
	fs = get_fs();
 | 
						|
	set_fs(KERNEL_DS);
 | 
						|
	ret = um_execve(filename, (const char __user *const __user *)argv,
 | 
						|
			(const char __user *const __user *) envp);
 | 
						|
	set_fs(fs);
 | 
						|
 | 
						|
	return ret;
 | 
						|
}
 |