diff options
Diffstat (limited to 'include/asm-arm/mmu_context.h')
| -rw-r--r-- | include/asm-arm/mmu_context.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/asm-arm/mmu_context.h b/include/asm-arm/mmu_context.h index f8755c818b54..4981ad419198 100644 --- a/include/asm-arm/mmu_context.h +++ b/include/asm-arm/mmu_context.h | |||
| @@ -36,8 +36,9 @@ void __check_kvm_seq(struct mm_struct *mm); | |||
| 36 | * The context ID is used by debuggers and trace logic, and | 36 | * The context ID is used by debuggers and trace logic, and |
| 37 | * should be unique within all running processes. | 37 | * should be unique within all running processes. |
| 38 | */ | 38 | */ |
| 39 | #define ASID_BITS 8 | 39 | #define ASID_BITS 8 |
| 40 | #define ASID_MASK ((~0) << ASID_BITS) | 40 | #define ASID_MASK ((~0) << ASID_BITS) |
| 41 | #define ASID_FIRST_VERSION (1 << ASID_BITS) | ||
| 41 | 42 | ||
| 42 | extern unsigned int cpu_last_asid; | 43 | extern unsigned int cpu_last_asid; |
| 43 | 44 | ||
| @@ -96,8 +97,7 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, | |||
| 96 | #ifdef CONFIG_MMU | 97 | #ifdef CONFIG_MMU |
| 97 | unsigned int cpu = smp_processor_id(); | 98 | unsigned int cpu = smp_processor_id(); |
| 98 | 99 | ||
| 99 | if (prev != next) { | 100 | if (!cpu_test_and_set(cpu, next->cpu_vm_mask) || prev != next) { |
| 100 | cpu_set(cpu, next->cpu_vm_mask); | ||
| 101 | check_context(next); | 101 | check_context(next); |
| 102 | cpu_switch_mm(next->pgd, next); | 102 | cpu_switch_mm(next->pgd, next); |
| 103 | if (cache_is_vivt()) | 103 | if (cache_is_vivt()) |
