From: Andrew Cooper Date: Thu, 31 Oct 2019 19:38:08 +0000 (+0000) Subject: x86/pv: Fix !CONFIG_PV build following XSA-299 X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1224 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7e4404f8c66f94ac173a3232712074677415d842;p=xen.git x86/pv: Fix !CONFIG_PV build following XSA-299 PTF_* are declared within CONFIG_PV, and used outside: mm.c: In function ‘_put_page_type’: mm.c:2819:32: error: ‘PTF_preemptible’ undeclared (first use in this function) bool preemptible = flags & PTF_preemptible; ^~~~~~~~~~~~~~~ mm.c:2819:32: note: each undeclared identifier is reported only once for each function it appears in mm.c:2842:24: error: ‘PTF_partial_set’ undeclared (first use in this function) if ( !(flags & PTF_partial_set) ) ^~~~~~~~~~~~~~~ mm.c: In function ‘put_page_type_preemptible’: mm.c:3090:33: error: ‘PTF_preemptible’ undeclared (first use in this function) return _put_page_type(page, PTF_preemptible, NULL); ^~~~~~~~~~~~~~~ mm.c: In function ‘put_old_guest_table’: mm.c:3108:25: error: ‘PTF_preemptible’ undeclared (first use in this function) PTF_preemptible | ^~~~~~~~~~~~~~~ mm.c:3110:27: error: ‘PTF_partial_set’ undeclared (first use in this function) PTF_partial_set : 0 ), ^~~~~~~~~~~~~~~ mm.c: In function ‘put_page_type_preemptible’: mm.c:3091:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Re-position the definitions to be outside of the #ifdef CONFIG_PV Signed-off-by: Andrew Cooper Reviewed-by: Wei Liu Release-acked-by: Juergen Gross --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 79c3e4c473..57f22775ac 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1063,8 +1063,6 @@ get_page_from_l1e( return -EBUSY; } -#ifdef CONFIG_PV - /* * The following flags are used to specify behavior of various get and * put commands. The first is also stored in page->partial_flags to @@ -1077,6 +1075,8 @@ get_page_from_l1e( #define PTF_defer (1 << 3) #define PTF_retain_ref_on_restart (1 << 4) +#ifdef CONFIG_PV + static int get_page_and_type_from_mfn( mfn_t mfn, unsigned long type, struct domain *d, unsigned int flags)