diff options
Diffstat (limited to 'arch/x86/include/asm/xen/page.h')
-rw-r--r-- | arch/x86/include/asm/xen/page.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h index 64a619d47d34..c34f96c2f7a0 100644 --- a/arch/x86/include/asm/xen/page.h +++ b/arch/x86/include/asm/xen/page.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/pgtable.h> | 12 | #include <asm/pgtable.h> |
13 | 13 | ||
14 | #include <xen/interface/xen.h> | 14 | #include <xen/interface/xen.h> |
15 | #include <xen/grant_table.h> | ||
15 | #include <xen/features.h> | 16 | #include <xen/features.h> |
16 | 17 | ||
17 | /* Xen machine address */ | 18 | /* Xen machine address */ |
@@ -39,7 +40,7 @@ typedef struct xpaddr { | |||
39 | ((unsigned long)((u64)CONFIG_XEN_MAX_DOMAIN_MEMORY * 1024 * 1024 * 1024 / PAGE_SIZE)) | 40 | ((unsigned long)((u64)CONFIG_XEN_MAX_DOMAIN_MEMORY * 1024 * 1024 * 1024 / PAGE_SIZE)) |
40 | 41 | ||
41 | extern unsigned long *machine_to_phys_mapping; | 42 | extern unsigned long *machine_to_phys_mapping; |
42 | extern unsigned int machine_to_phys_order; | 43 | extern unsigned long machine_to_phys_nr; |
43 | 44 | ||
44 | extern unsigned long get_phys_to_machine(unsigned long pfn); | 45 | extern unsigned long get_phys_to_machine(unsigned long pfn); |
45 | extern bool set_phys_to_machine(unsigned long pfn, unsigned long mfn); | 46 | extern bool set_phys_to_machine(unsigned long pfn, unsigned long mfn); |
@@ -48,14 +49,11 @@ extern unsigned long set_phys_range_identity(unsigned long pfn_s, | |||
48 | unsigned long pfn_e); | 49 | unsigned long pfn_e); |
49 | 50 | ||
50 | extern int m2p_add_override(unsigned long mfn, struct page *page, | 51 | extern int m2p_add_override(unsigned long mfn, struct page *page, |
51 | bool clear_pte); | 52 | struct gnttab_map_grant_ref *kmap_op); |
52 | extern int m2p_remove_override(struct page *page, bool clear_pte); | 53 | extern int m2p_remove_override(struct page *page, bool clear_pte); |
53 | extern struct page *m2p_find_override(unsigned long mfn); | 54 | extern struct page *m2p_find_override(unsigned long mfn); |
54 | extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn); | 55 | extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn); |
55 | 56 | ||
56 | #ifdef CONFIG_XEN_DEBUG_FS | ||
57 | extern int p2m_dump_show(struct seq_file *m, void *v); | ||
58 | #endif | ||
59 | static inline unsigned long pfn_to_mfn(unsigned long pfn) | 57 | static inline unsigned long pfn_to_mfn(unsigned long pfn) |
60 | { | 58 | { |
61 | unsigned long mfn; | 59 | unsigned long mfn; |
@@ -87,7 +85,7 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn) | |||
87 | if (xen_feature(XENFEAT_auto_translated_physmap)) | 85 | if (xen_feature(XENFEAT_auto_translated_physmap)) |
88 | return mfn; | 86 | return mfn; |
89 | 87 | ||
90 | if (unlikely((mfn >> machine_to_phys_order) != 0)) { | 88 | if (unlikely(mfn >= machine_to_phys_nr)) { |
91 | pfn = ~0; | 89 | pfn = ~0; |
92 | goto try_override; | 90 | goto try_override; |
93 | } | 91 | } |