powerpc/mm: Fix thread_pkey_regs_init()
authorRam Pai <linuxram@us.ibm.com>
Tue, 27 Mar 2018 02:36:54 +0000 (19:36 -0700)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 30 Mar 2018 13:10:33 +0000 (00:10 +1100)
thread_pkey_regs_init() initializes the pkey related registers
instead of initializing the fields in the task structures.  Fortunately
those key related registers are re-set to zero when the task
gets scheduled on the cpu. However its good to fix this glaringly
visible error.

Fixes: 06bb53b33804 ("powerpc: store and restore the pkey state across context switches")
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
Acked-by: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/pkeys.c

index ba71c5481f42152683ad8a38c714b4c703d88b11..328737b4d73c6cebe9c4f99aee19a97de1d56c30 100644 (file)
@@ -308,9 +308,9 @@ void thread_pkey_regs_init(struct thread_struct *thread)
        if (static_branch_likely(&pkey_disabled))
                return;
 
-       write_amr(read_amr() & pkey_amr_uamor_mask);
-       write_iamr(read_iamr() & pkey_iamr_mask);
-       write_uamor(read_uamor() & pkey_amr_uamor_mask);
+       thread->amr = read_amr() & pkey_amr_uamor_mask;
+       thread->iamr = read_iamr() & pkey_iamr_mask;
+       thread->uamor = read_uamor() & pkey_amr_uamor_mask;
 }
 
 static inline bool pkey_allows_readwrite(int pkey)