Re: [PATCH 30/34] x86, fpu: allow setting of XSAVE state

From: Thomas Gleixner
Date: Tue Dec 08 2015 - 13:49:13 EST


On Thu, 3 Dec 2015, Dave Hansen wrote:

>
> From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>
> We want to modify the Protection Key rights inside the kernel, so
> we need to change PKRU's contents. But, if we do a plain
> 'wrpkru', when we return to userspace we might do an XRSTOR and
> wipe out the kernel's 'wrpkru'. So, we need to go after PKRU in
> the xsave buffer.
>
> We do this by:
> 1. Ensuring that we have the XSAVE registers (fpregs) in the
> kernel FPU buffer (fpstate)
> 2. Looking up the location of a given state in the buffer
> 3. Filling in the stat
> 4. Ensuring that the hardware knows that state is present there
> (basically that the 'init optimization' is not in place).
> 5. Copying the newly-modified state back to the registers if
> necessary.
>
> Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>

Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
--
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/