diff options
| author | Jan Beulich <jbeulich@suse.com> | 2013-10-14 11:16:32 +0200 |
|---|---|---|
| committer | Jan Beulich <jbeulich@suse.com> | 2013-10-14 11:16:32 +0200 |
| commit | 32ff880f6e8f8898a1cefead79a65513140d2791 (patch) | |
| tree | 6b7792b8e2d974c9e6d77c29975bcff90b74eca8 /tools/blktap2/drivers/hashtable_utility.c | |
| parent | 66414e76c5abab743c031e688a863966f3b16664 (diff) | |
| download | xen-32ff880f6e8f8898a1cefead79a65513140d2791.tar.gz xen-32ff880f6e8f8898a1cefead79a65513140d2791.tar.bz2 xen-32ff880f6e8f8898a1cefead79a65513140d2791.zip | |
x86: correct LDT checks
- MMUEXT_SET_LDT should behave as similarly to the LLDT instruction as
possible: fail only if the base address is non-canonical
- instead LDT descriptor accesses should fault if the descriptor
address ends up being non-canonical (by ensuring this we at once
avoid reading an entry from the mach-to-phys table and consider it a
page table entry)
- fault propagation on using LDT selectors must distinguish #PF and #GP
(the latter must be raised for a non-canonical descriptor address,
which also applies to several other uses of propagate_page_fault(),
and hence the problem is being fixed there)
- map_ldt_shadow_page() should properly wrap addresses for 32-bit VMs
At once remove the odd invokation of map_ldt_shadow_page() from the
MMUEXT_SET_LDT handler: There's nothing really telling us that the
first LDT page is going to be preferred over others.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
master commit: 40d66baa46ca8a9ffa6df3e063a967d08ec92bcf
master date: 2013-10-11 09:28:26 +0200
Diffstat (limited to 'tools/blktap2/drivers/hashtable_utility.c')
0 files changed, 0 insertions, 0 deletions
