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

Re: [PATCH v6 02/11] xen/arm: add iounmap after initrd has been loaded in domain_build



(+ Henry)

Hi,

On 04/11/2022 10:07, Wei Chen wrote:
domain_build use ioremap_wc to map a new non-cacheable virtual

s/use/uses/

address for initrd. After Xen copy initrd from this address to
guest, this new allocated virtual address has not been unmapped.

So in this patch, we add an iounmap to the end of domain_build,
after Xen loaded initrd to guest memory.


Please a fixes tag. The issue was introduced by commit bb7e6d565d92.

Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
---
  xen/arch/arm/domain_build.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 4fb5c20b13..bd30d3798c 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -3418,6 +3418,8 @@ static void __init initrd_load(struct kernel_info *kinfo)
                                            initrd, len);
      if ( res != 0 )
          panic("Unable to copy the initrd in the hwdom memory\n");
+
+    iounmap(initrd);

This looks good to me. But I am wondering whether using ioremap_wc() is actually correct because we are reading the region. So it seems strang to map it with write-combine.

So I would consider to use ioremap_cache(). That said, this would be a separate patch.

I think this wants to be in 4.17. This will avoid Xen to have two mappings with different caching attribute (initrd is part of the RAM and therefore directmap).

Cheers,

--
Julien Grall



 


Rackspace

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