AMD/IOMMU: Clean up the allocation helpers
diff mbox series

Message ID 20200211112726.26639-1-andrew.cooper3@citrix.com
State New
Headers show
Series
  • AMD/IOMMU: Clean up the allocation helpers
Related show

Commit Message

Andrew Cooper Feb. 11, 2020, 11:27 a.m. UTC
Conform to style, drop unnecessary local variables, and avoid opencoding
clear_domain_page().

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wl@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>

Avoiding opencoding clear_domain_page() drops a surprising quantity of code.

  add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-269 (-269)
  Function                                     old     new   delta
  amd_iommu_alloc_root.part                    167     116     -51
  iommu_pde_from_dfn                          1061     955    -106
  amd_iommu_quarantine_init                    694     582    -112
  Total: Before=3019031, After=3018762, chg -0.01%
---
 xen/drivers/passthrough/amd/iommu.h | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

Comments

Durrant, Paul Feb. 11, 2020, 11:54 a.m. UTC | #1
> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of
> Andrew Cooper
> Sent: 11 February 2020 12:27
> To: Xen-devel <xen-devel@lists.xenproject.org>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>; Wei Liu <wl@xen.org>; Jan
> Beulich <JBeulich@suse.com>; Roger Pau Monné <roger.pau@citrix.com>
> Subject: [Xen-devel] [PATCH] AMD/IOMMU: Clean up the allocation helpers
> 
> Conform to style, drop unnecessary local variables, and avoid opencoding
> clear_domain_page().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Paul Durrant <pdurrant@amazon.com>
Jan Beulich Feb. 12, 2020, 9:28 a.m. UTC | #2
On 11.02.2020 12:27, Andrew Cooper wrote:
> Conform to style, drop unnecessary local variables, and avoid opencoding
> clear_domain_page().
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>

Patch
diff mbox series

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 1abfdc685a..16af40b8cd 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -341,34 +341,28 @@  static inline unsigned long region_to_pages(unsigned long addr, unsigned long si
     return (PAGE_ALIGN(addr + size) - (addr & PAGE_MASK)) >> PAGE_SHIFT;
 }
 
-static inline struct page_info* alloc_amd_iommu_pgtable(void)
+static inline struct page_info *alloc_amd_iommu_pgtable(void)
 {
-    struct page_info *pg;
-    void *vaddr;
-
-    pg = alloc_domheap_page(NULL, 0);
-    if ( pg == NULL )
-        return 0;
-    vaddr = __map_domain_page(pg);
-    memset(vaddr, 0, PAGE_SIZE);
-    unmap_domain_page(vaddr);
+    struct page_info *pg = alloc_domheap_page(NULL, 0);
+
+    if ( pg )
+        clear_domain_page(page_to_mfn(pg));
+
     return pg;
 }
 
 static inline void free_amd_iommu_pgtable(struct page_info *pg)
 {
-    if ( pg != 0 )
+    if ( pg )
         free_domheap_page(pg);
 }
 
-static inline void* __alloc_amd_iommu_tables(int order)
+static inline void *__alloc_amd_iommu_tables(unsigned int order)
 {
-    void *buf;
-    buf = alloc_xenheap_pages(order, 0);
-    return buf;
+    return alloc_xenheap_pages(order, 0);
 }
 
-static inline void __free_amd_iommu_tables(void *table, int order)
+static inline void __free_amd_iommu_tables(void *table, unsigned int order)
 {
     free_xenheap_pages(table, order);
 }