File 5dbc0d64-x86-fix-CONFIG_PV-build-following-XSA-299.patch of Package xen.13549

# Commit 7e4404f8c66f94ac173a3232712074677415d842
# Date 2019-11-01 10:48:04 +0000
# Author Andrew Cooper <andrew.cooper3@citrix.com>
# Committer Andrew Cooper <andrew.cooper3@citrix.com>
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 <andrew.cooper3@citrix.com>
Reviewed-by: Wei Liu <wl@xen.org>

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1095,8 +1095,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
@@ -1109,6 +1107,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)
openSUSE Build Service is sponsored by