[PATCH] uml: eliminate use of libc PAGE_SIZE

On some systems, libc PAGE_SIZE calls getpagesize, which can't happen from a
stub. So, I use UM_KERN_PAGE_SIZE, which is less variable in its definition,
instead.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Jeff Dike and committed by Linus Torvalds aa1a64ee 17d46971

+9 -4
+9 -4
arch/um/kernel/skas/clone.c
··· 9 #include "stub-data.h" 10 #include "uml-config.h" 11 #include "sysdep/stub.h" 12 13 /* This is in a separate file because it needs to be compiled with any 14 * extraneous gcc flags (-pg, -fprofile-arcs, -ftest-coverage) disabled 15 */ 16 17 #define STUB_DATA(field) (((struct stub_data *) UML_CONFIG_STUB_DATA)->field) ··· 26 long err; 27 28 err = stub_syscall2(__NR_clone, CLONE_PARENT | CLONE_FILES | SIGCHLD, 29 - UML_CONFIG_STUB_DATA + PAGE_SIZE / 2 - 30 sizeof(void *)); 31 if(err != 0) 32 goto out; ··· 40 if(err) 41 goto out; 42 43 - err = stub_syscall6(STUB_MMAP_NR, UML_CONFIG_STUB_DATA, PAGE_SIZE, 44 - PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, 45 - STUB_DATA(fd), STUB_DATA(offset)); 46 out: 47 /* save current result. Parent: pid; child: retcode of mmap */ 48 STUB_DATA(err) = err;
··· 9 #include "stub-data.h" 10 #include "uml-config.h" 11 #include "sysdep/stub.h" 12 + #include "kern_constants.h" 13 14 /* This is in a separate file because it needs to be compiled with any 15 * extraneous gcc flags (-pg, -fprofile-arcs, -ftest-coverage) disabled 16 + * 17 + * Use UM_KERN_PAGE_SIZE instead of PAGE_SIZE because that calls getpagesize 18 + * on some systems. 19 */ 20 21 #define STUB_DATA(field) (((struct stub_data *) UML_CONFIG_STUB_DATA)->field) ··· 22 long err; 23 24 err = stub_syscall2(__NR_clone, CLONE_PARENT | CLONE_FILES | SIGCHLD, 25 + UML_CONFIG_STUB_DATA + UM_KERN_PAGE_SIZE / 2 - 26 sizeof(void *)); 27 if(err != 0) 28 goto out; ··· 36 if(err) 37 goto out; 38 39 + err = stub_syscall6(STUB_MMAP_NR, UML_CONFIG_STUB_DATA, 40 + UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE, 41 + MAP_FIXED | MAP_SHARED, STUB_DATA(fd), 42 + STUB_DATA(offset)); 43 out: 44 /* save current result. Parent: pid; child: retcode of mmap */ 45 STUB_DATA(err) = err;