[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 5/8] x86/shadow: don't open-code shadow_remove_all_shadows()


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 26 Jul 2022 18:05:48 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PaVObIIKwSsNFmuQ6pXbbqRuzlKrtGx5TcJJvcCnz5M=; b=GmYDE6n/HAqG8k7JrqpWc5zhZjr9medaA/jWzhjRRUQAbJE4WPZUxg4muXXetm1ZomS8MzU2CvtwR8FGtqacoXTQPFzncbvxxjFb+5Jn5BXY0s3Br47N5C7+19mLaG75FqGoP2ai99Ctapdl5fOYcRmqyjr46WolgbRMET6/4HRSoKkQQnKqoknY0ZW9c8cqYjLcJm6bU4eUQjzmpdBi9aD/pu77d1sUIAFpahVo5WHd0XBu+zqRH4N3PydHs1ojK4CEoJJmynUN7bdwosiybHAqTdCpSPsOYX8Z8+CV/C97P2PqTgBFfKUFoRTdKdSV3GnFI/V+9XA9o+/H58qJjQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZWMypyfxcoStgzw3imPIRWUl04DLwak49WfhFmf6OOzQdpkR9ojZRlQwQAoKW6h+0rrHu5CMMkxjF0aYdEPzb5IgLO3iRs5DU2SHDJYAM5FxSEWHXC0eCl6L8zvBhdqnHf9TPeHol9ijFxMoZhokt1f5P5q0rpYRaMrZrakbGivVuJtzztMtFW+6RGyOcv7iZipYXkCvK7Hv4K8kPIFGgZ1eqavjHOxuvpSntOr9AmD5XfbxFZAglHrROOJJ0xaPBm3Np7JIDtJewQ0GG0NmUKXgs3hRdoNiQNN21E2SsItplJxhZs2UsiRzRxq3k23fgGdUgqGsXMdWcKiVPP4dKA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>
  • Delivery-date: Tue, 26 Jul 2022 16:05:56 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Let's use the existing inline wrapper instead of repeating respective
commentary at every site.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -389,7 +389,7 @@ static int oos_remove_write_access(struc
          * the page.  If that doesn't work either, the guest is granting
          * his pagetables and must be killed after all.
          * This will flush the tlb, so we can return with no worries. */
-        sh_remove_shadows(d, gmfn, 0 /* Be thorough */, 1 /* Must succeed */);
+        shadow_remove_all_shadows(d, gmfn);
         return 1;
     }
 
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -783,7 +783,7 @@ sh_remove_all_shadows_and_parents(struct
 /* Even harsher: this is a HVM page that we thing is no longer a pagetable.
  * Unshadow it, and recursively unshadow pages that reference it. */
 {
-    sh_remove_shadows(d, gmfn, 0, 1);
+    shadow_remove_all_shadows(d, gmfn);
     /* XXX TODO:
      * Rework this hashtable walker to return a linked-list of all
      * the shadows it modified, then do breadth-first recursion
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -2632,7 +2632,7 @@ static int cf_check sh_page_fault(
         SHADOW_PRINTK("user-mode fault to PT, unshadowing mfn %#lx\n",
                       mfn_x(gmfn));
         perfc_incr(shadow_fault_emulate_failed);
-        sh_remove_shadows(d, gmfn, 0 /* thorough */, 1 /* must succeed */);
+        shadow_remove_all_shadows(d, gmfn);
         trace_shadow_emulate_other(TRC_SHADOW_EMULATE_UNSHADOW_USER,
                                       va, gfn);
         goto done;
@@ -2718,7 +2718,7 @@ static int cf_check sh_page_fault(
             v->arch.paging.last_write_emul_ok = 0;
         }
 #endif
-        sh_remove_shadows(d, gmfn, 0 /* thorough */, 1 /* must succeed */);
+        shadow_remove_all_shadows(d, gmfn);
         trace_shadow_emulate_other(TRC_SHADOW_EMULATE_UNSHADOW_EVTINJ,
                                    va, gfn);
         return EXCRET_fault_fixed;




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.