Re: [PATCH v3 2/2] powerpc/mm: Tracking vDSO remap

From: Ingo Molnar
Date: Wed Mar 25 2015 - 14:36:59 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

> > +#define __HAVE_ARCH_REMAP
> > +static inline void arch_remap(struct mm_struct *mm,
> > + unsigned long old_start, unsigned long old_end,
> > + unsigned long new_start, unsigned long new_end)
> > +{
> > + /*
> > + * mremap() doesn't allow moving multiple vmas so we can limit the
> > + * check to old_start == vdso_base.
> > + */
> > + if (old_start == mm->context.vdso_base)
> > + mm->context.vdso_base = new_start;
> > +}
>
> mremap() doesn't allow moving multiple vmas, but it allows the
> movement of multi-page vmas and it also allows partial mremap()s,
> where it will split up a vma.

I.e. mremap() supports the shrinking (and growing) of vmas. In that
case mremap() will unmap the end of the vma and will shrink the
remaining vDSO vma.

Doesn't that result in a non-working vDSO that should zero out
vdso_base?

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/