On 27.04.14 at 22:18,
wrote: Can you take a quick look at this? I don't have any 32-bit x86 machines to test with (or more accurately, I don't really want to have a 32-bit install *just* to test this.) The 32-bit builds are failing because of the removal of FIX_VDSO and I'd rather not "fix" it with the wrong thing.
Conceptionally it looks right, but I suppose this wasn't compile tested and/or is stale, because ...
--- a/arch/x86/include/asm/unwind.h +++ b/arch/x86/include/asm/unwind.h @@ -141,8 +141,9 @@ static inline int arch_unw_user_mode(/*c #else return user_mode_vm(&info->regs) || info->regs.ip < PAGE_OFFSET - || (info->regs.ip >= __fix_to_virt(FIX_VDSO) - && info->regs.ip < __fix_to_virt(FIX_VDSO) + PAGE_SIZE) + || (info->mm->context.vdso && + info->regs.ip >= info->mm->context.vdso && + info->regs.ip < info->mm_context.vdso + vdso32_size)
... struct unwind_frame_info has no member "mm" or "mm_context", and the patch also doesn't add one. Depending on what your intentions here really were, ->mm (or, if you meant info->task->mm->, ->task and ->task->mm) may additionally need checking to be non-NULL here. Additionally I think this tells us that we may need to adjust older trees in this way too, to account for the VDSO_ENABLED case. Jan -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org