On 01/21/2011 02:41 AM, Stephen Rothwell wrote: > Hi Konrad, > > After merging the swiotlb-xen tree, today's linux-next build (x86_64 > allmodconfig) produced these warnings: > > arch/x86/xen/p2m.c: In function 'xen_build_dynamic_phys_to_machine': > arch/x86/xen/p2m.c:251: warning: passing argument 1 of 'p2m_init' from incompatible pointer type > arch/x86/xen/p2m.c:121: note: expected 'long unsigned int *' but argument is of type 'long unsigned int **' > arch/x86/xen/p2m.c:254: warning: assignment makes pointer from integer without a cast > arch/x86/xen/p2m.c:256: warning: assignment from incompatible pointer type > > Introduced by commit fc0976e2c086e6e518e32dcafedb5a2ba3ea297d ("xen: p2m: > correctly initialize partial p2m leave"). > Sorry about that. For some reason I was blinded to the fact that p2m holds longs not pointers. And "unfortunately" it works either way. The following update would remove the warnings. Not sure it can still be folded into the original patch. -Stefan
>From fc26a9b0a6b87ee7d5d7cef77664c0d58bfc9761 Mon Sep 17 00:00:00 2001 From: Stefan Bader <stefan.bader@xxxxxxxxxxxxx> Date: Fri, 21 Jan 2011 09:46:07 +0100 Subject: [PATCH 2/2] xen: p2m: Use the correct type for p2m page In "xen: p2m: correctly initialize partial p2m leave" I introduced new compiler warnings by using unsigned long ** instead of unsigned long * for the 3rd level tree structure. Due to the nature of pointers and long this works practically but it should be done right. BugLink: http://bugs.launchpad.net/bugs/686692 Signed-off-by: Stefan Bader <stefan.bader@xxxxxxxxxxxxx> --- arch/x86/xen/p2m.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index c9307ec..ddc81a0 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c @@ -247,7 +247,7 @@ void __init xen_build_dynamic_phys_to_machine(void) */ if (unlikely(pfn + P2M_PER_PAGE > max_pfn)) { unsigned long p2midx; - unsigned long **p2m = extend_brk(PAGE_SIZE, PAGE_SIZE); + unsigned long *p2m = extend_brk(PAGE_SIZE, PAGE_SIZE); p2m_init(p2m); for (p2midx = 0; pfn + p2midx < max_pfn; p2midx++) { -- 1.7.0.4