From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] x86: favor function parameter over global in construct_dom0() Date: Thu, 2 Oct 2014 16:19:34 +0100 Message-ID: <542D6D06.6000501@citrix.com> References: <542D7109020000780003BFF9@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4338413317661645717==" Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XZiAl-00041M-KG for xen-devel@lists.xenproject.org; Thu, 02 Oct 2014 15:20:09 +0000 In-Reply-To: <542D7109020000780003BFF9@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , xen-devel Cc: Keir Fraser List-Id: xen-devel@lists.xenproject.org --===============4338413317661645717== Content-Type: multipart/alternative; boundary="------------030006080000030200000707" --------------030006080000030200000707 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit On 02/10/14 14:36, Jan Beulich wrote: > There's no reason to use the "hardware_domain" variable anywhere here, > making the code more cumbersome to read. > > Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper > > --- a/xen/arch/x86/domain_build.c > +++ b/xen/arch/x86/domain_build.c > @@ -270,7 +270,7 @@ static unsigned long __init compute_dom0 > return nr_pages; > } > > -static void __init process_dom0_ioports_disable(void) > +static void __init process_dom0_ioports_disable(struct domain *dom0) > { > unsigned long io_from, io_to; > char *t, *s = opt_dom0_ioports_disable; > @@ -303,7 +303,7 @@ static void __init process_dom0_ioports_ > printk("Disabling dom0 access to ioport range %04lx-%04lx\n", > io_from, io_to); > > - if ( ioports_deny_access(hardware_domain, io_from, io_to) != 0 ) > + if ( ioports_deny_access(dom0, io_from, io_to) != 0 ) > BUG(); > } > } > @@ -1425,29 +1425,28 @@ int __init construct_dom0( > rc = 0; > > /* The hardware domain is initially permitted full I/O capabilities. */ > - rc |= ioports_permit_access(hardware_domain, 0, 0xFFFF); > - rc |= iomem_permit_access(hardware_domain, 0UL, ~0UL); > - rc |= irqs_permit_access(hardware_domain, 1, nr_irqs_gsi - 1); > + rc |= ioports_permit_access(d, 0, 0xFFFF); > + rc |= iomem_permit_access(d, 0UL, ~0UL); > + rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1); > > /* > * Modify I/O port access permissions. > */ > /* Master Interrupt Controller (PIC). */ > - rc |= ioports_deny_access(hardware_domain, 0x20, 0x21); > + rc |= ioports_deny_access(d, 0x20, 0x21); > /* Slave Interrupt Controller (PIC). */ > - rc |= ioports_deny_access(hardware_domain, 0xA0, 0xA1); > + rc |= ioports_deny_access(d, 0xA0, 0xA1); > /* Interval Timer (PIT). */ > - rc |= ioports_deny_access(hardware_domain, 0x40, 0x43); > + rc |= ioports_deny_access(d, 0x40, 0x43); > /* PIT Channel 2 / PC Speaker Control. */ > - rc |= ioports_deny_access(hardware_domain, 0x61, 0x61); > + rc |= ioports_deny_access(d, 0x61, 0x61); > /* ACPI PM Timer. */ > if ( pmtmr_ioport ) > - rc |= ioports_deny_access(hardware_domain, pmtmr_ioport, > - pmtmr_ioport + 3); > + rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3); > /* PCI configuration space (NB. 0xcf8 has special treatment). */ > - rc |= ioports_deny_access(hardware_domain, 0xcfc, 0xcff); > + rc |= ioports_deny_access(d, 0xcfc, 0xcff); > /* Command-line I/O ranges. */ > - process_dom0_ioports_disable(); > + process_dom0_ioports_disable(d); > > /* > * Modify I/O memory access permissions. > @@ -1456,22 +1455,22 @@ int __init construct_dom0( > if ( mp_lapic_addr != 0 ) > { > mfn = paddr_to_pfn(mp_lapic_addr); > - rc |= iomem_deny_access(hardware_domain, mfn, mfn); > + rc |= iomem_deny_access(d, mfn, mfn); > } > /* I/O APICs. */ > for ( i = 0; i < nr_ioapics; i++ ) > { > mfn = paddr_to_pfn(mp_ioapics[i].mpc_apicaddr); > if ( !rangeset_contains_singleton(mmio_ro_ranges, mfn) ) > - rc |= iomem_deny_access(hardware_domain, mfn, mfn); > + rc |= iomem_deny_access(d, mfn, mfn); > } > /* MSI range. */ > - rc |= iomem_deny_access(hardware_domain, paddr_to_pfn(MSI_ADDR_BASE_LO), > + rc |= iomem_deny_access(d, paddr_to_pfn(MSI_ADDR_BASE_LO), > paddr_to_pfn(MSI_ADDR_BASE_LO + > MSI_ADDR_DEST_ID_MASK)); > /* HyperTransport range. */ > if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD ) > - rc |= iomem_deny_access(hardware_domain, paddr_to_pfn(0xfdULL << 32), > + rc |= iomem_deny_access(d, paddr_to_pfn(0xfdULL << 32), > paddr_to_pfn((1ULL << 40) - 1)); > > /* Remove access to E820_UNUSABLE I/O regions above 1MB. */ > @@ -1483,7 +1482,7 @@ int __init construct_dom0( > if ( (e820.map[i].type == E820_UNUSABLE) && > (e820.map[i].size != 0) && > (sfn <= efn) ) > - rc |= iomem_deny_access(hardware_domain, sfn, efn); > + rc |= iomem_deny_access(d, sfn, efn); > } > > BUG_ON(rc != 0); > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel --------------030006080000030200000707 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit
On 02/10/14 14:36, Jan Beulich wrote:
There's no reason to use the "hardware_domain" variable anywhere here,
making the code more cumbersome to read.

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

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
@@ -270,7 +270,7 @@ static unsigned long __init compute_dom0
     return nr_pages;
 }
 
-static void __init process_dom0_ioports_disable(void)
+static void __init process_dom0_ioports_disable(struct domain *dom0)
 {
     unsigned long io_from, io_to;
     char *t, *s = opt_dom0_ioports_disable;
@@ -303,7 +303,7 @@ static void __init process_dom0_ioports_
         printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
             io_from, io_to);
 
-        if ( ioports_deny_access(hardware_domain, io_from, io_to) != 0 )
+        if ( ioports_deny_access(dom0, io_from, io_to) != 0 )
             BUG();
     }
 }
@@ -1425,29 +1425,28 @@ int __init construct_dom0(
     rc = 0;
 
     /* The hardware domain is initially permitted full I/O capabilities. */
-    rc |= ioports_permit_access(hardware_domain, 0, 0xFFFF);
-    rc |= iomem_permit_access(hardware_domain, 0UL, ~0UL);
-    rc |= irqs_permit_access(hardware_domain, 1, nr_irqs_gsi - 1);
+    rc |= ioports_permit_access(d, 0, 0xFFFF);
+    rc |= iomem_permit_access(d, 0UL, ~0UL);
+    rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
 
     /*
      * Modify I/O port access permissions.
      */
     /* Master Interrupt Controller (PIC). */
-    rc |= ioports_deny_access(hardware_domain, 0x20, 0x21);
+    rc |= ioports_deny_access(d, 0x20, 0x21);
     /* Slave Interrupt Controller (PIC). */
-    rc |= ioports_deny_access(hardware_domain, 0xA0, 0xA1);
+    rc |= ioports_deny_access(d, 0xA0, 0xA1);
     /* Interval Timer (PIT). */
-    rc |= ioports_deny_access(hardware_domain, 0x40, 0x43);
+    rc |= ioports_deny_access(d, 0x40, 0x43);
     /* PIT Channel 2 / PC Speaker Control. */
-    rc |= ioports_deny_access(hardware_domain, 0x61, 0x61);
+    rc |= ioports_deny_access(d, 0x61, 0x61);
     /* ACPI PM Timer. */
     if ( pmtmr_ioport )
-        rc |= ioports_deny_access(hardware_domain, pmtmr_ioport,
-		                          pmtmr_ioport + 3);
+        rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
     /* PCI configuration space (NB. 0xcf8 has special treatment). */
-    rc |= ioports_deny_access(hardware_domain, 0xcfc, 0xcff);
+    rc |= ioports_deny_access(d, 0xcfc, 0xcff);
     /* Command-line I/O ranges. */
-    process_dom0_ioports_disable();
+    process_dom0_ioports_disable(d);
 
     /*
      * Modify I/O memory access permissions.
@@ -1456,22 +1455,22 @@ int __init construct_dom0(
     if ( mp_lapic_addr != 0 )
     {
         mfn = paddr_to_pfn(mp_lapic_addr);
-        rc |= iomem_deny_access(hardware_domain, mfn, mfn);
+        rc |= iomem_deny_access(d, mfn, mfn);
     }
     /* I/O APICs. */
     for ( i = 0; i < nr_ioapics; i++ )
     {
         mfn = paddr_to_pfn(mp_ioapics[i].mpc_apicaddr);
         if ( !rangeset_contains_singleton(mmio_ro_ranges, mfn) )
-            rc |= iomem_deny_access(hardware_domain, mfn, mfn);
+            rc |= iomem_deny_access(d, mfn, mfn);
     }
     /* MSI range. */
-    rc |= iomem_deny_access(hardware_domain, paddr_to_pfn(MSI_ADDR_BASE_LO),
+    rc |= iomem_deny_access(d, paddr_to_pfn(MSI_ADDR_BASE_LO),
                             paddr_to_pfn(MSI_ADDR_BASE_LO +
                                          MSI_ADDR_DEST_ID_MASK));
     /* HyperTransport range. */
     if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
-        rc |= iomem_deny_access(hardware_domain, paddr_to_pfn(0xfdULL << 32),
+        rc |= iomem_deny_access(d, paddr_to_pfn(0xfdULL << 32),
                                 paddr_to_pfn((1ULL << 40) - 1));
 
     /* Remove access to E820_UNUSABLE I/O regions above 1MB. */
@@ -1483,7 +1482,7 @@ int __init construct_dom0(
         if ( (e820.map[i].type == E820_UNUSABLE) &&
              (e820.map[i].size != 0) &&
              (sfn <= efn) )
-            rc |= iomem_deny_access(hardware_domain, sfn, efn);
+            rc |= iomem_deny_access(d, sfn, efn);
     }
 
     BUG_ON(rc != 0);




_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

--------------030006080000030200000707-- --===============4338413317661645717== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============4338413317661645717==--