Re: [RFC] prctl: Add PR_ codes to restore vDSO and tune up mm_structentires

From: Cyrill Gorcunov
Date: Tue Nov 29 2011 - 01:20:14 EST


On Mon, Nov 28, 2011 at 02:56:06PM -0800, Tejun Heo wrote:
> On Thu, Nov 24, 2011 at 04:00:51PM +0400, Cyrill Gorcunov wrote:
> > + case PR_SETUP_VDSO_AT:
> > + if (arg3 | arg4 | arg5)
> > + return -EINVAL;
> > +
> > + if (!capable(CAP_SYS_ADMIN))
> > + return -EPERM;
> > +
> > +#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
> > + error = arch_setup_additional_pages_at((void *)arg2);
> > +#else
> > + error = -ENOSYS;
> > +#endif
> > + break;
>
> Hmmm... I'm not sure this is the best approach. vdso is supposed to
> be able to be dependent on binprm too, so the proposed solution could
> work but I'm not sure whether it's a good one. For now, can't we just
> copy the vdso and unmap it at the orignal address?
>

Hi Tejun,

yeah, it might be not that good solution (RFC it was(c) ;) but I actually
failed to find some more elegant way of handling it. So you propose to handle
all the things directly in userspatce, ie unmap current, map previous vdso)?
(I fear mapping vsyscall is not allowed from userspace but I'll check)
--
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/