Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2018-08-23 18:49:21 +0200
committerMichal Suchanek <msuchanek@suse.de>2018-08-23 18:49:21 +0200
commit6401a2fae2be854a20a1cbd289873a85fb4c98e5 (patch)
treee26ed49f48b20caf4b88c274e2c06ffae5d8d740
parent8150186af3b4557b82fb597e7dec55f1ea0239a4 (diff)
powerpc/64s: Fix compiler store ordering to SLB shadow area
(bsc#1094244). suse-commit: b08b43ece5e0a0ee39008bc832e23e9eb87a711c
-rw-r--r--arch/powerpc/mm/slb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index 654a0d7ba0e7..66d8a4d2a14d 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -70,14 +70,14 @@ static inline void slb_shadow_update(unsigned long ea, int ssize,
* updating it. No write barriers are needed here, provided
* we only update the current CPU's SLB shadow buffer.
*/
- p->save_area[index].esid = 0;
- p->save_area[index].vsid = cpu_to_be64(mk_vsid_data(ea, ssize, flags));
- p->save_area[index].esid = cpu_to_be64(mk_esid_data(ea, ssize, index));
+ WRITE_ONCE(p->save_area[index].esid, 0);
+ WRITE_ONCE(p->save_area[index].vsid, cpu_to_be64(mk_vsid_data(ea, ssize, flags)));
+ WRITE_ONCE(p->save_area[index].esid, cpu_to_be64(mk_esid_data(ea, ssize, index)));
}
static inline void slb_shadow_clear(enum slb_index index)
{
- get_slb_shadow()->save_area[index].esid = 0;
+ WRITE_ONCE(get_slb_shadow()->save_area[index].esid, 0);
}
static inline void create_shadowed_slbe(unsigned long ea, int ssize,