x86/xen: Fix 32-bit PV guests's usage of kernel_stack
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Thu, 10 Apr 2014 16:17:09 +0000 (12:17 -0400)
committerDavid Vrabel <david.vrabel@citrix.com>
Tue, 15 Apr 2014 14:00:14 +0000 (15:00 +0100)
commit4461bbc05bf11fa4251acded60e4645863a4158a
tree170e93580f872fdb8e781bb83f6b1999322fbc7c
parentd06eb3ee9b09d753dc0883cc388d9a503839d6ca
x86/xen: Fix 32-bit PV guests's usage of kernel_stack

Commit 198d208df4371734ac4728f69cb585c284d20a15 ("x86: Keep
thread_info on thread stack in x86_32") made 32-bit kernels use
kernel_stack to point to thread_info. That change missed a couple of
updates needed by Xen's 32-bit PV guests:

1. kernel_stack needs to be initialized for secondary CPUs

2. GET_THREAD_INFO() now uses %fs register which may not be the
   kernel's version when executing xen_iret().

With respect to the second issue, we don't need GET_THREAD_INFO()
anymore: we used it as an intermediate step to get to per_cpu xen_vcpu
and avoid referencing %fs. Now that we are going to use %fs anyway we
may as well go directly to xen_vcpu.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
arch/x86/xen/smp.c
arch/x86/xen/xen-asm_32.S