|
From: Peter <pet...@ri...> - 2005-03-21 05:13:52
|
linux-2.4.27.tar.bz2 + uml-2.4.27-bs2-pre6.patch.bz2 patches with no
error. But I get the error below compile. It seems like the UML code
is passing in a mm as the first arg and the only definitions of
`do_mmap_pgoff' I can find start with a file arg and have no mm. I
dropped the mm arg in the code, and it then compiles OK. But segfaults
immediately on use. I'm not sure if that is caused by my code change or
not.
BTW: what is the current recommendation for a 'stable' 2.4 UML guest kernel?
Regards, Peter
gcc -D__KERNEL__ -I/usr/src/uml/linux-2.4.27-rimu2/linux-2.4.27/include
-Wall -Wstrict-prototypes -Wno-trigraphs -O2
-fno-strict-aliasing-fno-common -U__i386__ -Ui386 -DUM_FASTCALL -g
-D__arch_um__ -DSUBARCH="i386" -D_LARGEFILE64_SOURCE
-I/usr/src/uml/linux-2.4.27-rimu2/linux-2.4.27/arch/um/include
-Derrno=kernel_errno
-I/usr/src/uml/linux-2.4.27-rimu2/linux-2.4.27/arch/um/kernel/skas/include
-nostdinc -iwithprefix include -DKBUILD_BASENAME=syscall_kern -c -o
syscall_kern.o syscall_kern.c
syscall_kern.c: In function `do_mmap2':
syscall_kern.c:82: warning: passing arg 1 of `do_mmap_pgoff' from
incompatible pointer type
syscall_kern.c:82: warning: passing arg 2 of `do_mmap_pgoff' makes
integer from pointer without a cast
syscall_kern.c:82: too many arguments to function `do_mmap_pgoff'
make[2]: *** [syscall_kern.o] Error 1
relevant code:
/* common code for old and new mmaps */
long do_mmap2(struct mm_struct *mm, unsigned long addr, unsigned long len,
unsigned long prot, unsigned long flags, unsigned long fd,
unsigned long pgoff)
{
int error = -EBADF;
struct file * file = NULL;
flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
if (!(flags & MAP_ANONYMOUS)) {
file = fget(fd);
if (!file)
goto out;
}
down_write(&mm->mmap_sem);
error = do_mmap_pgoff(mm, file, addr, len, prot, flags, pgoff);
up_write(&mm->mmap_sem);
if (file)
fput(file);
out:
return error;
}
|