]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
x86/espfix/xen: Fix allocation of pages for paravirt page tables
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Wed, 9 Jul 2014 17:18:18 +0000 (13:18 -0400)
committerH. Peter Anvin <hpa@linux.intel.com>
Mon, 14 Jul 2014 20:47:32 +0000 (13:47 -0700)
commit8762e5092828c4dc0f49da5a47a644c670df77f3
treea54805cac2758322f4e997497267137c046e8574
parente0463e42d7b73654f39f6a155f82f0b72ad5258a
x86/espfix/xen: Fix allocation of pages for paravirt page tables

init_espfix_ap() is currently off by one level when informing hypervisor
that allocated pages will be used for ministacks' page tables.

The most immediate effect of this on a PV guest is that if
'stack_page = __get_free_page()' returns a non-zeroed-out page the hypervisor
will refuse to use it for a page table (which it shouldn't be anyway). This will
result in warnings by both Xen and Linux.

More importantly, a subsequent write to that page (again, by a PV guest) is
likely to result in fatal page fault.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: http://lkml.kernel.org/r/1404926298-5565-1-git-send-email-boris.ostrovsky@oracle.com
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org>
arch/x86/kernel/espfix_64.c