[PATCH 0/3] x86: PER_CPU segment improvements

Andy Lutomirski
2014-07-26T01:13:08Z

x86 sets up a per-cpu GDT entry so that vgetcpu can use LSL on it
to determine the CPU number and node.

This series, in little baby steps, cleans up that code and sets
the accessed and 32-bit flags on the segment.

The accessed bit prevents user code from setting the accessed bit
on its own, and making the segment 32-bit prevents concerns about
shenanigans involving CPU oddities with 16-bit data segments.

The latter isn't a real problem -- if it were a 16-bit read/write
segment, it could be used to bypass espfix64, but fortunately
RO segments can't be loaded into SS.

Andy Lutomirski (3):
x86,vdso: Change the PER_CPU segment to use struct desc_struct
x86,vdso: Make the PER_CPU segment start out accessed
x86,vdso: Make the PER_CPU segment 32 bits

arch/x86/kernel/vsyscall_64.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)

--
1.9.3