From: Wei Liu Date: Wed, 13 Sep 2017 14:32:04 +0000 (+0100) Subject: x86/mm: move guest_get_eff_l1e to pv/mm.h X-Git-Tag: 4.10.0-rc1~270 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=0f43e9cb6ff529b538cd7c1cf8fbb41ffdf7204f;p=xen.git x86/mm: move guest_get_eff_l1e to pv/mm.h Make it static inline. It will be used by map_ldt_shadow_page and ro page fault emulation code later. Signed-off-by: Wei Liu Acked-by: Jan Beulich --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 67f583e3a7..5fb60b642d 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -127,6 +127,7 @@ #include #include "pv/emulate.h" +#include "pv/mm.h" /* Override macros from asm/page.h to make them work with mfn_t */ #undef mfn_to_page @@ -564,23 +565,6 @@ static l1_pgentry_t *map_guest_l1e(unsigned long linear, mfn_t *gl1mfn) return (l1_pgentry_t *)map_domain_page(*gl1mfn) + l1_table_offset(linear); } -/* Read a PV guest's l1e that maps this linear address. */ -static l1_pgentry_t guest_get_eff_l1e(unsigned long linear) -{ - l1_pgentry_t l1e; - - ASSERT(!paging_mode_translate(current->domain)); - ASSERT(!paging_mode_external(current->domain)); - - if ( unlikely(!__addr_ok(linear)) || - __copy_from_user(&l1e, - &__linear_l1_table[l1_linear_offset(linear)], - sizeof(l1_pgentry_t)) ) - l1e = l1e_empty(); - - return l1e; -} - /* * Read the guest's l1e that maps this address, from the kernel-mode * page tables. diff --git a/xen/arch/x86/pv/mm.h b/xen/arch/x86/pv/mm.h new file mode 100644 index 0000000000..5b5dbff433 --- /dev/null +++ b/xen/arch/x86/pv/mm.h @@ -0,0 +1,21 @@ +#ifndef __PV_MM_H__ +#define __PV_MM_H__ + +/* Read a PV guest's l1e that maps this linear address. */ +static inline l1_pgentry_t guest_get_eff_l1e(unsigned long linear) +{ + l1_pgentry_t l1e; + + ASSERT(!paging_mode_translate(current->domain)); + ASSERT(!paging_mode_external(current->domain)); + + if ( unlikely(!__addr_ok(linear)) || + __copy_from_user(&l1e, + &__linear_l1_table[l1_linear_offset(linear)], + sizeof(l1_pgentry_t)) ) + l1e = l1e_empty(); + + return l1e; +} + +#endif /* __PV_MM_H__ */