+6
-12
arch/s390/kvm/gaccess.c
+6
-12
arch/s390/kvm/gaccess.c
···
229
229
goto out;
230
230
ic = &vcpu->kvm->arch.sca->ipte_control;
231
231
do {
232
-
old = *ic;
233
-
barrier();
232
+
old = READ_ONCE(*ic);
234
233
while (old.k) {
235
234
cond_resched();
236
-
old = *ic;
237
-
barrier();
235
+
old = READ_ONCE(*ic);
238
236
}
239
237
new = old;
240
238
new.k = 1;
···
251
253
goto out;
252
254
ic = &vcpu->kvm->arch.sca->ipte_control;
253
255
do {
254
-
old = *ic;
255
-
barrier();
256
+
old = READ_ONCE(*ic);
256
257
new = old;
257
258
new.k = 0;
258
259
} while (cmpxchg(&ic->val, old.val, new.val) != old.val);
···
266
269
267
270
ic = &vcpu->kvm->arch.sca->ipte_control;
268
271
do {
269
-
old = *ic;
270
-
barrier();
272
+
old = READ_ONCE(*ic);
271
273
while (old.kg) {
272
274
cond_resched();
273
-
old = *ic;
274
-
barrier();
275
+
old = READ_ONCE(*ic);
275
276
}
276
277
new = old;
277
278
new.k = 1;
···
283
288
284
289
ic = &vcpu->kvm->arch.sca->ipte_control;
285
290
do {
286
-
old = *ic;
287
-
barrier();
291
+
old = READ_ONCE(*ic);
288
292
new = old;
289
293
new.kh--;
290
294
if (!new.kh)