From: NIIBE Y. <gn...@m1...> - 2001-09-13 01:18:33
|
We need to implement MAP_SHARED: COLOUR_ALIGN MAP_PRIVATE: PAGE_ALIGN (Don't COLOUR_ALIGN) Others: don't care I think that it's good to set default to COLOUR_ALIGN, as cache works well. Here's a patch. * arch/sh/kernel/sys_sh.c (arch_get_unmapped_area): Don't COLOUR_ALIGN when it comes with MAP_PRIVATE. Index: arch/sh/kernel/sys_sh.c =================================================================== RCS file: /cvsroot/linuxsh/kernel/arch/sh/kernel/sys_sh.c,v retrieving revision 1.7 diff -u -r1.7 sys_sh.c --- arch/sh/kernel/sys_sh.c 2001/08/03 23:50:59 1.7 +++ arch/sh/kernel/sys_sh.c 2001/09/13 01:11:11 @@ -68,7 +68,10 @@ if (!addr) addr = TASK_UNMAPPED_BASE; - addr = COLOUR_ALIGN(addr); + if (flags & MAP_PRIVATE) + addr = PAGE_ALIGN(addr); + else + addr = COLOUR_ALIGN(addr); for (vma = find_vma(current->mm, addr); ; vma = vma->vm_next) { /* At this point: (!vma || addr < vma->vm_end). */ @@ -77,7 +80,8 @@ if (!vma || addr + len <= vma->vm_start) return addr; addr = vma->vm_end; - addr = COLOUR_ALIGN(addr); + if (!(flags & MAP_PRIVATE)) + addr = COLOUR_ALIGN(addr); } } #endif -- |