diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-05-20 20:06:24 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2011-05-20 20:08:05 +0200 | 
| commit | 250f972d85effad5b6e10da4bbd877e6a4b503b6 (patch) | |
| tree | 007393a6fc6439af7e0121dd99a6f9f9fb8405bc /arch/mips/kernel/syscall.c | |
| parent | 7372b0b122af0f6675f3ab65bfd91c8a438e0480 (diff) | |
| parent | bbe7b8bef48c567f5ff3f6041c1fb011292e8f12 (diff) | |
| download | olio-linux-3.10-250f972d85effad5b6e10da4bbd877e6a4b503b6.tar.xz olio-linux-3.10-250f972d85effad5b6e10da4bbd877e6a4b503b6.zip  | |
Merge branch 'timers/urgent' into timers/core
Reason: Get upstream fixes and kfree_rcu which is necessary for a
follow up patch.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/mips/kernel/syscall.c')
| -rw-r--r-- | arch/mips/kernel/syscall.c | 120 | 
1 files changed, 0 insertions, 120 deletions
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 58beabf50b3..d02765708dd 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c @@ -10,12 +10,9 @@  #include <linux/capability.h>  #include <linux/errno.h>  #include <linux/linkage.h> -#include <linux/mm.h>  #include <linux/fs.h>  #include <linux/smp.h> -#include <linux/mman.h>  #include <linux/ptrace.h> -#include <linux/sched.h>  #include <linux/string.h>  #include <linux/syscalls.h>  #include <linux/file.h> @@ -25,11 +22,9 @@  #include <linux/msg.h>  #include <linux/shm.h>  #include <linux/compiler.h> -#include <linux/module.h>  #include <linux/ipc.h>  #include <linux/uaccess.h>  #include <linux/slab.h> -#include <linux/random.h>  #include <linux/elf.h>  #include <asm/asm.h> @@ -66,121 +61,6 @@ out:  	return res;  } -unsigned long shm_align_mask = PAGE_SIZE - 1;	/* Sane caches */ - -EXPORT_SYMBOL(shm_align_mask); - -#define COLOUR_ALIGN(addr,pgoff)				\ -	((((addr) + shm_align_mask) & ~shm_align_mask) +	\ -	 (((pgoff) << PAGE_SHIFT) & shm_align_mask)) - -unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, -	unsigned long len, unsigned long pgoff, unsigned long flags) -{ -	struct vm_area_struct * vmm; -	int do_color_align; -	unsigned long task_size; - -#ifdef CONFIG_32BIT -	task_size = TASK_SIZE; -#else /* Must be CONFIG_64BIT*/ -	task_size = test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE; -#endif - -	if (len > task_size) -		return -ENOMEM; - -	if (flags & MAP_FIXED) { -		/* Even MAP_FIXED mappings must reside within task_size.  */ -		if (task_size - len < addr) -			return -EINVAL; - -		/* -		 * We do not accept a shared mapping if it would violate -		 * cache aliasing constraints. -		 */ -		if ((flags & MAP_SHARED) && -		    ((addr - (pgoff << PAGE_SHIFT)) & shm_align_mask)) -			return -EINVAL; -		return addr; -	} - -	do_color_align = 0; -	if (filp || (flags & MAP_SHARED)) -		do_color_align = 1; -	if (addr) { -		if (do_color_align) -			addr = COLOUR_ALIGN(addr, pgoff); -		else -			addr = PAGE_ALIGN(addr); -		vmm = find_vma(current->mm, addr); -		if (task_size - len >= addr && -		    (!vmm || addr + len <= vmm->vm_start)) -			return addr; -	} -	addr = current->mm->mmap_base; -	if (do_color_align) -		addr = COLOUR_ALIGN(addr, pgoff); -	else -		addr = PAGE_ALIGN(addr); - -	for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) { -		/* At this point:  (!vmm || addr < vmm->vm_end). */ -		if (task_size - len < addr) -			return -ENOMEM; -		if (!vmm || addr + len <= vmm->vm_start) -			return addr; -		addr = vmm->vm_end; -		if (do_color_align) -			addr = COLOUR_ALIGN(addr, pgoff); -	} -} - -void arch_pick_mmap_layout(struct mm_struct *mm) -{ -	unsigned long random_factor = 0UL; - -	if (current->flags & PF_RANDOMIZE) { -		random_factor = get_random_int(); -		random_factor = random_factor << PAGE_SHIFT; -		if (TASK_IS_32BIT_ADDR) -			random_factor &= 0xfffffful; -		else -			random_factor &= 0xffffffful; -	} - -	mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; -	mm->get_unmapped_area = arch_get_unmapped_area; -	mm->unmap_area = arch_unmap_area; -} - -static inline unsigned long brk_rnd(void) -{ -	unsigned long rnd = get_random_int(); - -	rnd = rnd << PAGE_SHIFT; -	/* 8MB for 32bit, 256MB for 64bit */ -	if (TASK_IS_32BIT_ADDR) -		rnd = rnd & 0x7ffffful; -	else -		rnd = rnd & 0xffffffful; - -	return rnd; -} - -unsigned long arch_randomize_brk(struct mm_struct *mm) -{ -	unsigned long base = mm->brk; -	unsigned long ret; - -	ret = PAGE_ALIGN(base + brk_rnd()); - -	if (ret < mm->brk) -		return mm->brk; - -	return ret; -} -  SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,  	unsigned long, prot, unsigned long, flags, unsigned long,  	fd, off_t, offset)  |