Re: [PATCH 00 of 36] x86/paravirt: groundwork for 64-bit Xen support

Jeremy Fitzhardinge
2008-06-25T20:12:50Z

Ingo Molnar wrote:
> * Ingo Molnar <mingo@elte.hu> wrote:
>
>
>> Anyway, that's all theory - i'll try out your patchset in -tip to see
>> what breaks in practice ;-)
>>
>
> i've put the commits (and a good number of dependent commits) into the
> new tip/x86/xen-64bit topic branch.
>
> It quickly broke the build in testing:
>
> include/asm/pgalloc.h: In function ‘paravirt_pgd_free':
> include/asm/pgalloc.h:14: error: parameter name omitted
> arch/x86/kernel/entry_64.S: In file included from
> arch/x86/kernel/traps_64.c:51:include/asm/pgalloc.h: In function ‘paravirt_pgd_free':
> include/asm/pgalloc.h:14: error: parameter name omitted
>

No, looks like my fault. The non-PARAVIRT version of
paravirt_pgd_free() is:

static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *) {}

but C doesn't like missing parameter names, even if unused.

This should fix it:

diff -r 19b73cc5fdf4 include/asm-x86/pgalloc.h
--- a/include/asm-x86/pgalloc.h Wed Jun 25 11:24:41 2008 -0400
+++ b/include/asm-x86/pgalloc.h Wed Jun 25 13:11:56 2008 -0700
@@ -11,7 +11,7 @@
#include <asm/paravirt.h>
#else
#define paravirt_pgd_alloc(mm) __paravirt_pgd_alloc(mm)
-static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *) {}
+static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *pgd) {}
static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned long pfn) {}
static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned long pfn) {}
static inline void paravirt_alloc_pmd_clone(unsigned long pfn, unsigned long clonepfn,