powerpc/32s: In add_hash_page(), calculate VSID later
VSID is only for create_hpte(). When _PAGE_HASHPTE is already set, add_hash_page() bails out without calling create_hpte() and doesn't need the value of VSID. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/3907199974c89b85a3441cf3f528751173b7649c.1606247495.git.christophe.leroy@csgroup.eu
This commit is contained in:
Родитель
c5ccb4e789
Коммит
fec6166b44
|
@ -182,12 +182,6 @@ _GLOBAL(add_hash_page)
|
|||
mflr r0
|
||||
stw r0,4(r1)
|
||||
|
||||
/* Convert context and va to VSID */
|
||||
mulli r3,r3,897*16 /* multiply context by context skew */
|
||||
rlwinm r0,r4,4,28,31 /* get ESID (top 4 bits of va) */
|
||||
mulli r0,r0,0x111 /* multiply by ESID skew */
|
||||
add r3,r3,r0 /* note create_hpte trims to 24 bits */
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
lwz r8,TASK_CPU(r2) /* to go in mmu_hash_lock */
|
||||
oris r8,r8,12
|
||||
|
@ -251,6 +245,12 @@ _GLOBAL(add_hash_page)
|
|||
stwcx. r5,0,r8
|
||||
bne- 1b
|
||||
|
||||
/* Convert context and va to VSID */
|
||||
mulli r3,r3,897*16 /* multiply context by context skew */
|
||||
rlwinm r0,r4,4,28,31 /* get ESID (top 4 bits of va) */
|
||||
mulli r0,r0,0x111 /* multiply by ESID skew */
|
||||
add r3,r3,r0 /* note create_hpte trims to 24 bits */
|
||||
|
||||
bl create_hpte
|
||||
|
||||
9:
|
||||
|
|
Загрузка…
Ссылка в новой задаче