aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-02-05 01:29:14 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:18 -0500
commit5e5419734c8719cbc01af959ad9c0844002c0df5 (patch)
treea075dca3f719946689efa0245464855cbf2a20ce /arch/um/kernel
parent9f8f2172537de7af0b0fbd33502d18d52b1339bc (diff)
add mm argument to pte/pmd/pud/pgd_free
(with Martin Schwidefsky <schwidefsky@de.ibm.com>) The pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as first argument. The free functions do not get the mm_struct argument. This is 1) asymmetrical and 2) to do mm related page table allocations the mm argument is needed on the free function as well. [kamalesh@linux.vnet.ibm.com: i386 fix] [akpm@linux-foundation.org: coding-syle fixes] Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/kernel')
-rw-r--r--arch/um/kernel/mem.c2
-rw-r--r--arch/um/kernel/skas/mmu.c8
2 files changed, 5 insertions, 5 deletions
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
index 59822dee438a..e3e72418f241 100644
--- a/arch/um/kernel/mem.c
+++ b/arch/um/kernel/mem.c
@@ -348,7 +348,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
348 return pgd; 348 return pgd;
349} 349}
350 350
351void pgd_free(pgd_t *pgd) 351void pgd_free(struct mm_struct *mm, pgd_t *pgd)
352{ 352{
353 free_page((unsigned long) pgd); 353 free_page((unsigned long) pgd);
354} 354}
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c
index f859ec306cd5..b56fe8b67a81 100644
--- a/arch/um/kernel/skas/mmu.c
+++ b/arch/um/kernel/skas/mmu.c
@@ -58,9 +58,9 @@ static int init_stub_pte(struct mm_struct *mm, unsigned long proc,
58 return 0; 58 return 0;
59 59
60 out_pmd: 60 out_pmd:
61 pud_free(pud); 61 pud_free(mm, pud);
62 out_pte: 62 out_pte:
63 pmd_free(pmd); 63 pmd_free(mm, pmd);
64 out: 64 out:
65 return -ENOMEM; 65 return -ENOMEM;
66} 66}
@@ -144,10 +144,10 @@ void destroy_context(struct mm_struct *mm)
144 if (!proc_mm || !ptrace_faultinfo) { 144 if (!proc_mm || !ptrace_faultinfo) {
145 free_page(mmu->id.stack); 145 free_page(mmu->id.stack);
146 pte_lock_deinit(virt_to_page(mmu->last_page_table)); 146 pte_lock_deinit(virt_to_page(mmu->last_page_table));
147 pte_free_kernel((pte_t *) mmu->last_page_table); 147 pte_free_kernel(mm, (pte_t *) mmu->last_page_table);
148 dec_zone_page_state(virt_to_page(mmu->last_page_table), NR_PAGETABLE); 148 dec_zone_page_state(virt_to_page(mmu->last_page_table), NR_PAGETABLE);
149#ifdef CONFIG_3_LEVEL_PGTABLES 149#ifdef CONFIG_3_LEVEL_PGTABLES
150 pmd_free((pmd_t *) mmu->last_pmd); 150 pmd_free(mm, (pmd_t *) mmu->last_pmd);
151#endif 151#endif
152 } 152 }
153 153