fix build error in arch/x86/mm/pgtable_32.c
Subsystems (3)
PATCH 1/1 fix build error in arch/x86/mm/pgtable_32.c
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 <[email protected]>
--- arch/x86/mm/pgtable_32.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
arch/x86/mm/pgtable_32.c +5 -5
@@ -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 mmpmd_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); }