Skip to content

Commit

Permalink
[PATCH] mm: cris v32 mmu_context_lock
Browse files Browse the repository at this point in the history
The cris v32 switch_mm guards get_mmu_context with next->page_table_lock: good
it's not really SMP yet, since get_mmu_context messes with global variables
affecting other mms.  Replace by global mmu_context_lock.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Hugh Dickins authored and Linus Torvalds committed Oct 30, 2005
1 parent 92dc6fc commit a7e4705
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions arch/cris/arch-v32/mm/tlb.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ init_new_context(struct task_struct *tsk, struct mm_struct *mm)
return 0;
}

static DEFINE_SPINLOCK(mmu_context_lock);

/* Called in schedule() just before actually doing the switch_to. */
void
switch_mm(struct mm_struct *prev, struct mm_struct *next,
Expand All @@ -183,10 +185,10 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next,
int cpu = smp_processor_id();

/* Make sure there is a MMU context. */
spin_lock(&next->page_table_lock);
spin_lock(&mmu_context_lock);
get_mmu_context(next);
cpu_set(cpu, next->cpu_vm_mask);
spin_unlock(&next->page_table_lock);
spin_unlock(&mmu_context_lock);

/*
* Remember the pgd for the fault handlers. Keep a seperate copy of it
Expand Down

0 comments on commit a7e4705

Please sign in to comment.