------- Comment #8 from mikpe at it dot uu dot se 2010-05-29 11:35 ------- (In reply to comment #6) > I note that copypage-xscale.c:xscale_mc_copy_user_highpage() calls a __naked > function to do the bulk copy. Converting that to a plain inline function > (changing 'pc' to 'lr' in the final instruction that restores the scrach > regs), > does not prevent the crash. So I suspect a plain C code miscompilation.
Actually that conversion away from __naked may have been flawed. What I'm seeing is that r148981 causes gcc to clone the __naked function and change its calling conventions in ways that don't match the proper function call ABI. This breaks the body of the __naked function which is just a big asm() statement. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44290