On Tue, May 08, 2007 at 08:51:42PM +0100, Ken Moffat wrote:Already known, although it is still unclear what the bug actually is. Can you run with the appended patch please (from Eric Biederman) and post any backtraces the WARN_ON in there spews out? Also do you use swiotlb? Thanks -Andi diff --git a/include/asm-x86_64/page.h b/include/asm-x86_64/page.h index b17fc16..e6a4d1e 100644 --- a/include/asm-x86_64/page.h +++ b/include/asm-x86_64/page.h @@ -105,7 +105,18 @@ extern unsigned long phys_base; /* Note: __pa(&symbol_visible_to_c) should be always replaced with __pa_symbol. Otherwise you risk miscompilation. */ -#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET) +#define __pa(x) \ +({ \ + unsigned long v; \ + asm("" : "=r" (v) : "0" ((unsigned long)(x))); \ + WARN_ON(v >= __START_KERNEL_map); \ + if (likely(v < __START_KERNEL_map)) \ + v -= PAGE_OFFSET; \ + else \ + v = (v - __START_KERNEL_map) + phys_base; \ + v; \ +}) + /* __pa_symbol should be used for C visible symbols. This seems to be the official gcc blessed way to do such arithmetic. */ #define __pa_symbol(x) \ -
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Joe Perches | [PATCH 015/148] include/asm-x86/checksum_64.h: checkpatch cleanups - formatting only |
| Jeremy Allison | Re: [RFC] Heads up on sys_fallocate() |
git: | |
| Corey Minyard | [PATCH 3/3] Convert the UDP hash lock to RCU |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
