xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: xen-devel@lists.xen.org
Cc: Julien Grall <julien.grall@arm.com>,
	sstabellini@kernel.org, wei.chen@linaro.org
Subject: [PATCH v4 10/16] xen/arm: dom0_build: Remove dead code in allocate_memory
Date: Mon, 27 Jun 2016 17:54:06 +0100	[thread overview]
Message-ID: <1467046452-1261-11-git-send-email-julien.grall@arm.com> (raw)
In-Reply-To: <1467046452-1261-1-git-send-email-julien.grall@arm.com>

The code to allocate memory when dom0 does not use direct mapping is
relying on the presence of memory node in the DT.

However, they are not present when booting using UEFI or when using
ACPI.

Rather than fixing the code, remove it because dom0 is always direct
memory mapped and therefore the code is never tested. Also add a
check to avoid disabling direct memory mapped and not implementing
the associated RAM bank allocation.

Signed-off-by: Julien Grall <julien.grall@arm.com>

---
    Changes in v4:
        - Patch added
---
 xen/arch/arm/domain_build.c | 58 ++++++---------------------------------------
 1 file changed, 7 insertions(+), 51 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 49185f0..923f48a 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -235,7 +235,7 @@ fail:
  * (as described above) we allow higher allocations and continue until
  * that runs out (or we have allocated sufficient dom0 memory).
  */
-static void allocate_memory_11(struct domain *d, struct kernel_info *kinfo)
+static void allocate_memory(struct domain *d, struct kernel_info *kinfo)
 {
     const unsigned int min_low_order =
         get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
@@ -247,6 +247,12 @@ static void allocate_memory_11(struct domain *d, struct kernel_info *kinfo)
     bool_t lowmem = is_32bit_domain(d);
     unsigned int bits;
 
+    /*
+     * TODO: Implement memory bank allocation when DOM0 is not direct
+     * mapped
+     */
+    BUG_ON(!dom0_11_mapping);
+
     printk("Allocating 1:1 mappings totalling %ldMB for dom0:\n",
            /* Don't want format this as PRIpaddr (16 digit hex) */
            (unsigned long)(kinfo->unassigned_mem >> 20));
@@ -343,56 +349,6 @@ static void allocate_memory_11(struct domain *d, struct kernel_info *kinfo)
     }
 }
 
-static void allocate_memory(struct domain *d, struct kernel_info *kinfo)
-{
-
-    struct dt_device_node *memory = NULL;
-    const void *reg;
-    u32 reg_len, reg_size;
-    unsigned int bank = 0;
-
-    if ( dom0_11_mapping )
-        return allocate_memory_11(d, kinfo);
-
-    while ( (memory = dt_find_node_by_type(memory, "memory")) )
-    {
-        int l;
-
-        dt_dprintk("memory node\n");
-
-        reg_size = dt_cells_to_size(dt_n_addr_cells(memory) + dt_n_size_cells(memory));
-
-        reg = dt_get_property(memory, "reg", &reg_len);
-        if ( reg == NULL )
-            panic("Memory node has no reg property");
-
-        for ( l = 0;
-              kinfo->unassigned_mem > 0 && l + reg_size <= reg_len
-                  && kinfo->mem.nr_banks < NR_MEM_BANKS;
-              l += reg_size )
-        {
-            paddr_t start, size;
-
-            if ( dt_device_get_address(memory, bank, &start, &size) )
-                panic("Unable to retrieve the bank %u for %s",
-                      bank, dt_node_full_name(memory));
-
-            if ( size > kinfo->unassigned_mem )
-                size = kinfo->unassigned_mem;
-
-            printk("Populate P2M %#"PRIx64"->%#"PRIx64"\n",
-                   start, start + size);
-            if ( p2m_populate_ram(d, start, start + size) < 0 )
-                panic("Failed to populate P2M");
-            kinfo->mem.bank[kinfo->mem.nr_banks].start = start;
-            kinfo->mem.bank[kinfo->mem.nr_banks].size = size;
-            kinfo->mem.nr_banks++;
-
-            kinfo->unassigned_mem -= size;
-        }
-    }
-}
-
 static int write_properties(struct domain *d, struct kernel_info *kinfo,
                             const struct dt_device_node *node)
 {
-- 
1.9.1


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

  parent reply	other threads:[~2016-06-27 16:54 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-27 16:53 [PATCH v4 00/16] xen/arm: Use the typesafes gfn and mfn Julien Grall
2016-06-27 16:53 ` [PATCH v4 01/16] xen: Use typesafe gfn/mfn in guest_physmap_* helpers Julien Grall
2016-06-27 16:53 ` [PATCH v4 02/16] xen: Use typesafe gfn in xenmem_add_to_physmap_one Julien Grall
2016-06-27 16:53 ` [PATCH v4 03/16] xen/arm: Rename grant_table_gfpn into grant_table_gfn and use the typesafe gfn Julien Grall
2016-06-27 16:54 ` [PATCH v4 04/16] xen: Use the typesafe mfn and gfn in map_mmio_regions Julien Grall
2016-06-27 16:54 ` [PATCH v4 05/16] xen/mm: Introduce INVALID_GFN_T and INVALID_MFN_T Julien Grall
2016-06-28  7:16   ` Jan Beulich
2016-06-28  7:29     ` Andrew Cooper
2016-06-28  7:54       ` Jan Beulich
2016-06-27 16:54 ` [PATCH v4 06/16] xen/arm: Rework the interface of p2m_lookup and use typesafe gfn and mfn Julien Grall
2016-06-27 16:54 ` [PATCH v4 07/16] xen/arm: Rework the interface of p2m_cache_flush and use typesafe gfn Julien Grall
2016-06-27 16:54 ` [PATCH v4 08/16] xen: Replace _mfn(INVALID_MFN) with MFN_INVALID_T Julien Grall
2016-06-28  7:19   ` Jan Beulich
2016-06-28 12:18     ` Julien Grall
2016-06-27 16:54 ` [PATCH v4 09/16] xen/arm: map_regions_rw_cache: Map the region with p2m->default_access Julien Grall
2016-06-27 16:54 ` Julien Grall [this message]
2016-06-27 16:54 ` [PATCH v4 11/16] xen/arm: p2m: Remove unused operation ALLOCATE Julien Grall
2016-06-27 16:54 ` [PATCH v4 12/16] xen/arm: Use the typesafes mfn and gfn in map_dev_mmio_region Julien Grall
2016-06-27 16:54 ` [PATCH v4 13/16] xen/arm: Use the typesafes mfn and gfn in map_regions_rw_cache Julien Grall
2016-06-27 16:54 ` [PATCH v4 14/16] xen/arm: p2m: Introduce helpers to insert and remove mapping Julien Grall
2016-06-27 16:54 ` [PATCH v4 15/16] xen/arm: p2m: Use typesafe gfn for {max, lowest}_mapped_gfn Julien Grall
2016-06-27 16:54 ` [PATCH v4 16/16] xen/arm: p2m: Rework the interface of apply_p2m_changes and use typesafe Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1467046452-1261-11-git-send-email-julien.grall@arm.com \
    --to=julien.grall@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=wei.chen@linaro.org \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).