Re: [patch 6/6] x86: Add checks for virtual addresses in __phys_addr()

From: Christoph Lameter
Date: Fri May 09 2008 - 23:08:38 EST


We also need to address this issue with __pa expected to be a constant in
32 bit code. Sigh.


---
arch/x86/kernel/doublefault_32.c | 2 +-
include/asm-x86/page_32.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/include/asm-x86/page_32.h
===================================================================
--- linux-2.6.orig/include/asm-x86/page_32.h 2008-05-09 19:32:47.000000000 -0700
+++ linux-2.6/include/asm-x86/page_32.h 2008-05-09 19:32:55.000000000 -0700
@@ -65,7 +65,7 @@ typedef struct page *pgtable_t;

#ifndef __ASSEMBLY__
#ifdef CONFIG_DEBUG_VM
-unsigned long __phys_addr(unsigned long x)
+extern unsigned long __phys_addr(unsigned long x);
#else
#define __phys_addr(x) ((x) - PAGE_OFFSET)
#endif
Index: linux-2.6/arch/x86/kernel/doublefault_32.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/doublefault_32.c 2008-05-09 19:40:08.000000000 -0700
+++ linux-2.6/arch/x86/kernel/doublefault_32.c 2008-05-09 19:40:45.000000000 -0700
@@ -66,6 +66,6 @@ struct tss_struct doublefault_tss __cach
.ds = __USER_DS,
.fs = __KERNEL_PERCPU,

- .__cr3 = __pa(swapper_pg_dir)
+ .__cr3 = (unsigned long)swapper_pg_dir - PAGE_OFFSET
}
};

--
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/