diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/mm/hugepage-hash64.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hugepage-hash64.c b/arch/powerpc/mm/hugepage-hash64.c index 826893fcb3a7..11f9a37ca2c6 100644 --- a/arch/powerpc/mm/hugepage-hash64.c +++ b/arch/powerpc/mm/hugepage-hash64.c | |||
@@ -172,8 +172,11 @@ repeat: | |||
172 | mark_hpte_slot_valid(hpte_slot_array, index, slot); | 172 | mark_hpte_slot_valid(hpte_slot_array, index, slot); |
173 | } | 173 | } |
174 | /* | 174 | /* |
175 | * No need to use ldarx/stdcx here | 175 | * The hpte valid is stored in the pgtable whose address is in the |
176 | * second half of the PMD. Order this against clearing of the busy bit in | ||
177 | * huge pmd. | ||
176 | */ | 178 | */ |
179 | smp_wmb(); | ||
177 | *pmdp = __pmd(new_pmd & ~_PAGE_BUSY); | 180 | *pmdp = __pmd(new_pmd & ~_PAGE_BUSY); |
178 | return 0; | 181 | return 0; |
179 | } | 182 | } |