diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
commit | 801827bf8d95db56b98e55719a6f99d17c9b78eb (patch) | |
tree | 07100a6c8f4738495f21f8f074c3b10ef43cb992 /xen/arch/x86/hvm/mtrr.c | |
parent | eb4fb7f1e4c3c368a3510ce245e957312cbeed97 (diff) | |
download | xen-801827bf8d95db56b98e55719a6f99d17c9b78eb.tar.gz xen-801827bf8d95db56b98e55719a6f99d17c9b78eb.tar.bz2 xen-801827bf8d95db56b98e55719a6f99d17c9b78eb.zip |
x86/mm/p2m: Fix locking discipline around p2m lookups.
All gfn_to_mfn* functions except _query() might take the p2m lock,
so can't be called with a p2m, shadow, hap or log_dirty lock held.
The remaining offender is the memory sharing code, which calls
_unshare() from inside the pagetable walker! Fixing that is too big
for a cleanup patch like this one.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/mtrr.c')
-rw-r--r-- | xen/arch/x86/hvm/mtrr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c index ec4a15f23d..11cfa4b106 100644 --- a/xen/arch/x86/hvm/mtrr.c +++ b/xen/arch/x86/hvm/mtrr.c @@ -390,7 +390,7 @@ uint32_t get_pat_flags(struct vcpu *v, { struct domain *d = v->domain; p2m_type_t p2mt; - gfn_to_mfn(d, paddr_to_pfn(gpaddr), &p2mt); + gfn_to_mfn_query(d, paddr_to_pfn(gpaddr), &p2mt); if (p2m_is_ram(p2mt)) gdprintk(XENLOG_WARNING, "Conflict occurs for a given guest l1e flags:%x " |