[patch 1/8] x86: UV - Introduce a means to translate from gpa -> socket_paddr.

From: Robin Holt
Date: Mon Nov 23 2009 - 20:40:07 EST



For SGI UV systems, translate from a global physical address back to
a socket physical address. This does nothing to ensure the socket
physical address is actually addressable by the kernel. That is the
responsibility of the user of the function.

To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Robin Holt <holt@xxxxxxx>
Cc: Jack Steiner <steiner@xxxxxxx>
Cc: lkml <linux-kernel@xxxxxxxxxxxxxxx>
Cc: linux-mm@xxxxxxxxxxxxxxx

---

arch/x86/include/asm/uv/uv_hub.h | 13 +++++++++++++
1 file changed, 13 insertions(+)


Index: linux-x86/arch/x86/include/asm/uv/uv_hub.h
===================================================================
--- linux-x86.orig/arch/x86/include/asm/uv/uv_hub.h 2009-11-09 08:46:25.000000000 -0600
+++ linux-x86/arch/x86/include/asm/uv/uv_hub.h 2009-11-09 08:50:25.000000000 -0600
@@ -232,6 +232,19 @@ static inline unsigned long uv_gpa(void
return uv_soc_phys_ram_to_gpa(__pa(v));
}

+/* UV global physical address --> socket phys RAM */
+static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa)
+{
+ unsigned long paddr = gpa & uv_hub_info->gpa_mask;
+ unsigned long remap_base = uv_hub_info->lowmem_remap_base;
+ unsigned long remap_top = uv_hub_info->lowmem_remap_top;
+
+ if (paddr >= remap_base && paddr < remap_base + remap_top)
+ paddr -= remap_base;
+ return paddr;
+}
+
+
/* gnode -> pnode */
static inline unsigned long uv_gpa_to_gnode(unsigned long gpa)
{

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/