git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
sh
/
kernel
/
sys_sh.c
diff --git
a/arch/sh/kernel/sys_sh.c
b/arch/sh/kernel/sys_sh.c
index
df5ac29
..
de03114
100644
(file)
--- a/
arch/sh/kernel/sys_sh.c
+++ b/
arch/sh/kernel/sys_sh.c
@@
-21,6
+21,7
@@
#include <linux/mman.h>
#include <linux/file.h>
#include <linux/utsname.h>
#include <linux/mman.h>
#include <linux/file.h>
#include <linux/utsname.h>
+#include <linux/vs_cvirt.h>
#include <asm/uaccess.h>
#include <asm/ipc.h>
#include <asm/uaccess.h>
#include <asm/ipc.h>
@@
-79,6
+80,10
@@
unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
(!vma || addr + len <= vma->vm_start))
return addr;
}
(!vma || addr + len <= vma->vm_start))
return addr;
}
+ if (len <= mm->cached_hole_size) {
+ mm->cached_hole_size = 0;
+ mm->free_area_cache = TASK_UNMAPPED_BASE;
+ }
if (flags & MAP_PRIVATE)
addr = PAGE_ALIGN(mm->free_area_cache);
else
if (flags & MAP_PRIVATE)
addr = PAGE_ALIGN(mm->free_area_cache);
else
@@
-95,6
+100,7
@@
full_search:
*/
if (start_addr != TASK_UNMAPPED_BASE) {
start_addr = addr = TASK_UNMAPPED_BASE;
*/
if (start_addr != TASK_UNMAPPED_BASE) {
start_addr = addr = TASK_UNMAPPED_BASE;
+ mm->cached_hole_size = 0;
goto full_search;
}
return -ENOMEM;
goto full_search;
}
return -ENOMEM;
@@
-106,6
+112,9
@@
full_search:
mm->free_area_cache = addr + len;
return addr;
}
mm->free_area_cache = addr + len;
return addr;
}
+ if (addr + mm->cached_hole_size < vma->vm_start)
+ mm->cached_hole_size = vma->vm_start - addr;
+
addr = vma->vm_end;
if (!(flags & MAP_PRIVATE))
addr = COLOUR_ALIGN(addr);
addr = vma->vm_end;
if (!(flags & MAP_PRIVATE))
addr = COLOUR_ALIGN(addr);
@@
-259,7
+268,7
@@
asmlinkage int sys_uname(struct old_utsname * name)
if (!name)
return -EFAULT;
down_read(&uts_sem);
if (!name)
return -EFAULT;
down_read(&uts_sem);
- err=copy_to_user(name,
&system_utsname
, sizeof (*name));
+ err=copy_to_user(name,
vx_new_utsname()
, sizeof (*name));
up_read(&uts_sem);
return err?-EFAULT:0;
}
up_read(&uts_sem);
return err?-EFAULT:0;
}