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: Ingo Molnar Signed-off-by: Robin Holt Cc: Jack Steiner Cc: lkml --- 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/