Re: [PATCH 3/4] Add 32 bit VDSO time support for 32 bit kernel

H. Peter Anvin
2014-02-02T00:27:09Z

On 02/01/2014 03:59 PM, Andy Lutomirski wrote:
>
> If it is, indeed, okay to use non-fixed maps on 32-bit, it might
> also be okay on 64-bit. If so, it could be useful to implement that,
> which would remove a bit of a wart and allow PR_SET_TSC to work
> usefully for 64-bit userspace. (This would remove the need for the
> VVAR macro and would allow shorter rip-relative address modes.)
>

We can't really move the 64-bit legacy vsyscall area, though, as it is
an ABI. It can be disabled with vsyscall=none, but Linus has vehemently
vetoed removing them.

> (Note that those fixmaps are a security problem on native 32-bit if
> NX is not available. We may not care.)

Not only on native 32 bit... although the amount of 64-bit hardware
without NX is quite small, the same is true for anywhere near modern
32-bit hardware.

>>
>> -#define VDSO_HIGH_BASE 0xffffe000U /* CONFIG_COMPAT_VDSO address */
>> +#define VDSO_HIGH_BASE 0xffffc000U /* CONFIG_COMPAT_VDSO address */
>
> This is odd. Can you explain it?
>

He needs 3 pages instead of 1 after his changes.

-hpa