x86/pv: Fix !CONFIG_PV build following XSA-299
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 31 Oct 2019 19:38:08 +0000 (19:38 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 1 Nov 2019 10:48:04 +0000 (10:48 +0000)
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>
Release-acked-by: Juergen Gross <jgross@suse.com>
xen/arch/x86/mm.c

index 79c3e4c4730777e25396f86c6c501cf5bba6459c..57f22775acaebe8f17281e4d6f229d2395300035 100644 (file)
@@ -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)