powerpc: Move the setting of rflags out of loop in __hash_page_huge
It seems that new_pte and rflags don't get changed in the repeating loop, so move their assignment out of the loop. Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
This commit is contained in:
committed by
Michael Ellerman
parent
c2e1d84523
commit
2c3c0693d9
@@ -87,10 +87,6 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
|
|||||||
|
|
||||||
pa = pte_pfn(__pte(old_pte)) << PAGE_SHIFT;
|
pa = pte_pfn(__pte(old_pte)) << PAGE_SHIFT;
|
||||||
|
|
||||||
repeat:
|
|
||||||
hpte_group = ((hash & htab_hash_mask) *
|
|
||||||
HPTES_PER_GROUP) & ~0x7UL;
|
|
||||||
|
|
||||||
/* clear HPTE slot informations in new PTE */
|
/* clear HPTE slot informations in new PTE */
|
||||||
#ifdef CONFIG_PPC_64K_PAGES
|
#ifdef CONFIG_PPC_64K_PAGES
|
||||||
new_pte = (new_pte & ~_PAGE_HPTEFLAGS) | _PAGE_HPTE_SUB0;
|
new_pte = (new_pte & ~_PAGE_HPTEFLAGS) | _PAGE_HPTE_SUB0;
|
||||||
@@ -101,6 +97,10 @@ repeat:
|
|||||||
rflags |= (new_pte & (_PAGE_WRITETHRU | _PAGE_NO_CACHE |
|
rflags |= (new_pte & (_PAGE_WRITETHRU | _PAGE_NO_CACHE |
|
||||||
_PAGE_COHERENT | _PAGE_GUARDED));
|
_PAGE_COHERENT | _PAGE_GUARDED));
|
||||||
|
|
||||||
|
repeat:
|
||||||
|
hpte_group = ((hash & htab_hash_mask) *
|
||||||
|
HPTES_PER_GROUP) & ~0x7UL;
|
||||||
|
|
||||||
/* Insert into the hash table, primary slot */
|
/* Insert into the hash table, primary slot */
|
||||||
slot = ppc_md.hpte_insert(hpte_group, vpn, pa, rflags, 0,
|
slot = ppc_md.hpte_insert(hpte_group, vpn, pa, rflags, 0,
|
||||||
mmu_psize, ssize);
|
mmu_psize, ssize);
|
||||||
|
|||||||
Reference in New Issue
Block a user