[PATCH 2.6.24-mm1] fix build error in arch/x86/mm/pgtable_32.c
From: Nadia Derbey
Date: Fri Feb 08 2008 - 05:08:12 EST
Hi,
2.6.24-mm1 won't build if CONFIG_X86_PAE is defined:
/home/lkernel/src/linux-2.6.24-mm1/arch/x86/mm/pgtable_32.c: In function
‘pgd_mop_up_pmds’:
/home/lkernel/src/linux-2.6.24-mm1/arch/x86/mm/pgtable_32.c:302:
warning: passing argument 1 of ‘pmd_free’ from incompatible pointer type
/home/lkernel/src/linux-2.6.24-mm1/arch/x86/mm/pgtable_32.c:302: error:
too few arguments to function ‘pmd_free’
make[2]: *** [arch/x86/mm/pgtable_32.o] Error 1
make[1]: *** [arch/x86/mm] Error 2
make: *** [sub-make] Error 2
You'll find the proposed patch in attachment.
Regards,
Nadia
Add the mm missing argument to pmd_free() calls.
Signed-off-by: Nadia Derbey <Nadia.Derbey@xxxxxxxx>
---
arch/x86/mm/pgtable_32.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: linux-2.6.24-mm1/arch/x86/mm/pgtable_32.c
===================================================================
--- linux-2.6.24-mm1.orig/arch/x86/mm/pgtable_32.c 2008-02-07 13:40:42.000000000 +0100
+++ linux-2.6.24-mm1/arch/x86/mm/pgtable_32.c 2008-02-08 11:40:00.000000000 +0100
@@ -286,7 +286,7 @@ static void pgd_dtor(void *pgd)
* preallocate which never got a corresponding vma will need to be
* freed manually.
*/
-static void pgd_mop_up_pmds(pgd_t *pgdp)
+static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
{
int i;
@@ -299,7 +299,7 @@ static void pgd_mop_up_pmds(pgd_t *pgdp)
pgdp[i] = native_make_pgd(0);
paravirt_release_pd(pgd_val(pgd) >> PAGE_SHIFT);
- pmd_free(pmd);
+ pmd_free(mm, pmd);
}
}
}
@@ -327,7 +327,7 @@ static int pgd_prepopulate_pmd(struct mm
pmd_t *pmd = pmd_alloc_one(mm, addr);
if (!pmd) {
- pgd_mop_up_pmds(pgd);
+ pgd_mop_up_pmds(mm, pgd);
return 0;
}
@@ -347,7 +347,7 @@ static int pgd_prepopulate_pmd(struct mm
return 1;
}
-static void pgd_mop_up_pmds(pgd_t *pgd)
+static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgd)
{
}
#endif /* CONFIG_X86_PAE */
@@ -368,7 +368,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
void pgd_free(struct mm_struct *mm, pgd_t *pgd)
{
- pgd_mop_up_pmds(pgd);
+ pgd_mop_up_pmds(mm, pgd);
quicklist_free(0, pgd_dtor, pgd);
}