summaryrefslogtreecommitdiff
path: root/arch/powerpc/mm/subpage-prot.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-12-02 09:28:35 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-12-02 09:28:35 +1100
commit5a7b4193e564d1611ecf1cd859aed60d5612d78f (patch)
tree8831669121df3d50845718b848d7c6e4bc51be26 /arch/powerpc/mm/subpage-prot.c
parent86f9e097f340fd0fbd37afe92bd5453f5a84cbca (diff)
Revert "powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT"
This reverts commit c045256d146800ea1d741a8e9e377dada6b7e195. It breaks build when CONFIG_PPC_SUBPAGE_PROT is not set. I will commit a fixed version separately Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/mm/subpage-prot.c')
-rw-r--r--arch/powerpc/mm/subpage-prot.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/arch/powerpc/mm/subpage-prot.c b/arch/powerpc/mm/subpage-prot.c
index a040b81e93bd..4cafc0c33d0a 100644
--- a/arch/powerpc/mm/subpage-prot.c
+++ b/arch/powerpc/mm/subpage-prot.c
@@ -24,9 +24,9 @@
* Also makes sure that the subpage_prot_table structure is
* reinitialized for the next user.
*/
-void subpage_prot_free(struct mm_struct *mm)
+void subpage_prot_free(pgd_t *pgd)
{
- struct subpage_prot_table *spt = &mm->context.spt;
+ struct subpage_prot_table *spt = pgd_subpage_prot(pgd);
unsigned long i, j, addr;
u32 **p;
@@ -51,13 +51,6 @@ void subpage_prot_free(struct mm_struct *mm)
spt->maxaddr = 0;
}
-void subpage_prot_init_new_context(struct mm_struct *mm)
-{
- struct subpage_prot_table *spt = &mm->context.spt;
-
- memset(spt, 0, sizeof(*spt));
-}
-
static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
int npages)
{
@@ -94,7 +87,7 @@ static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
static void subpage_prot_clear(unsigned long addr, unsigned long len)
{
struct mm_struct *mm = current->mm;
- struct subpage_prot_table *spt = &mm->context.spt;
+ struct subpage_prot_table *spt = pgd_subpage_prot(mm->pgd);
u32 **spm, *spp;
int i, nw;
unsigned long next, limit;
@@ -143,7 +136,7 @@ static void subpage_prot_clear(unsigned long addr, unsigned long len)
long sys_subpage_prot(unsigned long addr, unsigned long len, u32 __user *map)
{
struct mm_struct *mm = current->mm;
- struct subpage_prot_table *spt = &mm->context.spt;
+ struct subpage_prot_table *spt = pgd_subpage_prot(mm->pgd);
u32 **spm, *spp;
int i, nw;
unsigned long next, limit;