|
@@ -63,14 +63,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,
|