Hi L4 hackers, recently I started to use L4Linux r37 on ARM and experienced some issues with the 'sys_mmap_pgoff'-system call. When a user-level task tried to map a file the 'pgoff' parameter was usually bogus. Doing a little research I found that it was caused by the 'sys_mmap2' implementation in 'entry.S'. The function overwrites the 'pgoff' argument on the stack with r5 (as it is usually passed from user land), since in L4Linux this code gets called from the dispatch routine, 'pgoff' was set to whatever r5 was, and thus leading to bus errors later on.
Cheers, Sebastian -- Sebastian Sumpf Genode Labs http://www.genode-labs.com · http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Index: arch/l4/kernel/arch-arm/entry.S =================================================================== --- arch/l4/kernel/arch-arm/entry.S (revision 37) +++ arch/l4/kernel/arch-arm/entry.S (working copy) @@ -81,7 +81,6 @@ mov r0, #-EINVAL mov pc, lr #else - str r5, [sp, #4] b sys_mmap_pgoff #endif ENDPROC(sys_mmap2)
_______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
