x86, wakeup, sleep: Use pvops functions for changing GDT entries
authorkonrad@kernel.org <konrad@kernel.org>
Fri, 5 Apr 2013 20:42:24 +0000 (16:42 -0400)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 11 Apr 2013 22:41:15 +0000 (15:41 -0700)
commit4d681be3c33dd74efffbe2a8f70634f7128602ec
treebedae6990d10b9e137ea80c12f5746c14907120f
parent357d122670937c35b33d99c46356ef2b63182a1f
x86, wakeup, sleep: Use pvops functions for changing GDT entries

We check the TSS descriptor before we try to dereference it.
Also we document what the value '9' actually means using the
AMD64 Architecture Programmer's Manual Volume 2, pg 90:
"Hex value 9: Available 64-bit TSS" and pg 91:
"The available 32-bit TSS (09h), which is redefined as the
available 64-bit TSS."

Without this, on Xen, where the GDT is available as R/O (to
protect the hypervisor from the guest modifying it), we end up
with a pagetable fault.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Link: http://lkml.kernel.org/r/1365194544-14648-5-git-send-email-konrad.wilk@oracle.com
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/power/cpu.c