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

Re: [PATCH v3 28/52] xen/mpu: plump virt/maddr conversion in MPU system


  • To: Penny Zheng <Penny.Zheng@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Date: Thu, 29 Jun 2023 15:20:11 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.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=s80gEzrECilDabEcD9FY6cy4TnxW2I0uSGGsHeu+IPA=; b=RzD5SsrHUh63DnItxwYXNeBC0vsy3YXcdBEhN1gHzY5pSBusIJcqrWgAElc55heEl8o2VoMYJ5K6eyacPHhsVK30eX/QxwiPkBl9dFNKc7pm2abEZMWKOWYJOaUqufxFK3Iattp7KjOMUMWUSdx9Dx40RazrqxF1YXLoVnURUjUrtF8C13R4pneVGR7l5HcTxTVk/yJaNCf0mOYjCnkVeWYAQIQ4nz9D54u3c/lFgdue+pnoB8Y7nbza18r8l6+f2O5kwrq2G1pZxiCDyB9UM4hCO9iakH5BAj2f4OXpvynZ7yWHOwwbtyOBKfvzYWrVxsTtMeSSZRry5/hya33xCA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bcbo3Z3EhmhvW1ESLwk+BNKxwSRB+aP16bchN9LabVC30S1V52IFmRBW/OcRS6rhRrMTwMNwcNCLdue2Rn9hj2ReesepwIylWtCFRC8hUhLkDilBr2P1fRQ3W/4QT4qiZKWsXkwRz8lIE/olAmAWQEUZvbdtSHjan0UwGBFFv+JpH2IEe9eeMle1v/A0O/P+GqgDOLkGyYZWPgOLBEVU8XO+8T64jA5TSVKNj5Q6a1DPXa8EB7aa5ZrKWWM0ztAfVJcsz0HZQyjYua7Ubt6jjzYwPUGDI8WnsDyoYDvpuAupec2AaMiUr1Zm/Tqk7YKnwuAthsVvQMILWUsGCRKSgg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Wei Chen <wei.chen@xxxxxxx>
  • Delivery-date: Thu, 29 Jun 2023 14:20:38 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>


On 26/06/2023 04:34, Penny Zheng wrote:
CAUTION: This message has originated from an External Source. Please use proper 
judgment and caution when opening attachments, clicking links, or responding to 
this email.


virt_to_maddr and maddr_to_virt are used widely in Xen code. So
even there is no VMSA in MPU system, we keep the interface in MPU to
stay the same code flow.

The MPU version of virt/maddr conversion is simple, and we just return
the input address as the output with type conversion.

Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
---
v3:
- Fix typos
- Move the implementation from mm/mpu.h to mm.h, to share as much as
possible with MMU system.
---
  xen/arch/arm/include/asm/mm.h | 15 +++++++++++++++
  1 file changed, 15 insertions(+)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index eb520b49e3..ea4847c12b 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -267,13 +267,22 @@ static inline void __iomem *ioremap_wc(paddr_t start, 
size_t len)
  /* Page-align address and convert to frame number format */
  #define paddr_to_pfn_aligned(paddr)    paddr_to_pfn(PAGE_ALIGN(paddr))

+#ifndef CONFIG_HAS_MPU
  static inline paddr_t __virt_to_maddr(vaddr_t va)
  {
      uint64_t par = va_to_par(va);
      return (par & PADDR_MASK & PAGE_MASK) | (va & ~PAGE_MASK);
  }
+#else
+static inline paddr_t __virt_to_maddr(vaddr_t va)
+{
+    return (paddr_t)va;
+}
+#endif /* CONFIG_HAS_MPU */
+
  #define virt_to_maddr(va)   __virt_to_maddr((vaddr_t)(va))

+#ifndef CONFIG_HAS_MPU
  #ifdef CONFIG_ARM_32
  static inline void *maddr_to_virt(paddr_t ma)
  {
@@ -292,6 +301,12 @@ static inline void *maddr_to_virt(paddr_t ma)
                       ((ma & ma_top_mask) >> pfn_pdx_hole_shift)));
  }
  #endif
+#else /* CONFIG_HAS_MPU */
+static inline void *maddr_to_virt(paddr_t ma)
+{
+    return (void *)(unsigned long)ma;

Why do you need "(unsigned long)ma" ? Both "unsigned long" and "paddr_t" are u64.

- Ayan

+}
+#endif

  /*
   * Translate a guest virtual address to a machine address.
--
2.25.1





 


Rackspace

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