diff options
| -rw-r--r-- | arch/x86/include/asm/tlbflush.h | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index c2e45da4e540..3e2227386abe 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h | |||
| @@ -60,19 +60,13 @@ static inline void invpcid_flush_all_nonglobals(void) | |||
| 60 | 60 | ||
| 61 | static inline u64 inc_mm_tlb_gen(struct mm_struct *mm) | 61 | static inline u64 inc_mm_tlb_gen(struct mm_struct *mm) |
| 62 | { | 62 | { |
| 63 | u64 new_tlb_gen; | ||
| 64 | |||
| 65 | /* | 63 | /* |
| 66 | * Bump the generation count. This also serves as a full barrier | 64 | * Bump the generation count. This also serves as a full barrier |
| 67 | * that synchronizes with switch_mm(): callers are required to order | 65 | * that synchronizes with switch_mm(): callers are required to order |
| 68 | * their read of mm_cpumask after their writes to the paging | 66 | * their read of mm_cpumask after their writes to the paging |
| 69 | * structures. | 67 | * structures. |
| 70 | */ | 68 | */ |
| 71 | smp_mb__before_atomic(); | 69 | return atomic64_inc_return(&mm->context.tlb_gen); |
| 72 | new_tlb_gen = atomic64_inc_return(&mm->context.tlb_gen); | ||
| 73 | smp_mb__after_atomic(); | ||
| 74 | |||
| 75 | return new_tlb_gen; | ||
| 76 | } | 70 | } |
| 77 | 71 | ||
| 78 | #ifdef CONFIG_PARAVIRT | 72 | #ifdef CONFIG_PARAVIRT |
