@samitouri / QOSamiQemu / commits / 96432d94a4

target/loongarch: Use sys_state in kvm.c when accessing CSR registers

When accessing CSR registers in file kvm.c, use sys_state rather than env. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Philippe Mathieu-Daudé <philmd@mailo.com> Tested-by: Song Gao <gaosong@loongson.cn> Message-ID: <20260605082552.175336-6-maobibo@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn>

Bibo Mao committed Jun 5, 2026 at 16:25 UTC 96432d94a42961036a52634a8cc1427b301c1829
1 file changed +116 -112
target/loongarch/kvm/kvm.c
+116 -112
@@ -161,6 +161,7 @@ static int kvm_loongarch_put_pmu(CPUState *cs)
161 int i, ret = 0;
162 CPULoongArchState *env = cpu_env(cs);
163 LoongArchCPU *cpu = LOONGARCH_CPU(cs);
164 + CPUSysState *sys = env_sys(env);
165
166 if (cpu->pmu != ON_OFF_AUTO_ON) {
167 return 0;
@@ -168,9 +169,9 @@ static int kvm_loongarch_put_pmu(CPUState *cs)
169
170 for (i = 0; i < env->perf_event_num; i++) {
171 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PERFCTRL(i)),
171 - &env->CSR_PERFCTRL[i]);
172 + &sys->CSR_PERFCTRL[i]);
173 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PERFCNTR(i)),
173 - &env->CSR_PERFCNTR[i]);
174 + &sys->CSR_PERFCNTR[i]);
175 }
176
177 return ret;
@@ -181,6 +182,7 @@ static int kvm_loongarch_get_pmu(CPUState *cs)
182 int i, ret = 0;
183 CPULoongArchState *env = cpu_env(cs);
184 LoongArchCPU *cpu = LOONGARCH_CPU(cs);
185 + CPUSysState *sys = env_sys(env);
186
187 if (cpu->pmu != ON_OFF_AUTO_ON) {
188 return 0;
@@ -188,9 +190,9 @@ static int kvm_loongarch_get_pmu(CPUState *cs)
190
191 for (i = 0; i < env->perf_event_num; i++) {
192 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PERFCTRL(i)),
191 - &env->CSR_PERFCTRL[i]);
193 + &sys->CSR_PERFCTRL[i]);
194 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PERFCNTR(i)),
193 - &env->CSR_PERFCNTR[i]);
195 + &sys->CSR_PERFCNTR[i]);
196 }
197
198 return ret;
@@ -200,170 +202,171 @@ static int kvm_loongarch_get_csr(CPUState *cs)
202 {
203 int ret = 0;
204 CPULoongArchState *env = cpu_env(cs);
205 + CPUSysState *sys = env_sys(env);
206
207 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CRMD),
205 - &env->CSR_CRMD);
208 + &sys->CSR_CRMD);
209
210 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRMD),
208 - &env->CSR_PRMD);
211 + &sys->CSR_PRMD);
212
213 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_EUEN),
211 - &env->CSR_EUEN);
214 + &sys->CSR_EUEN);
215
216 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_MISC),
214 - &env->CSR_MISC);
217 + &sys->CSR_MISC);
218
219 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ECFG),
217 - &env->CSR_ECFG);
220 + &sys->CSR_ECFG);
221
222 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ESTAT),
220 - &env->CSR_ESTAT);
223 + &sys->CSR_ESTAT);
224
225 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ERA),
223 - &env->CSR_ERA);
226 + &sys->CSR_ERA);
227
228 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_BADV),
226 - &env->CSR_BADV);
229 + &sys->CSR_BADV);
230
231 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_BADI),
229 - &env->CSR_BADI);
232 + &sys->CSR_BADI);
233
234 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_EENTRY),
232 - &env->CSR_EENTRY);
235 + &sys->CSR_EENTRY);
236
237 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBIDX),
235 - &env->CSR_TLBIDX);
238 + &sys->CSR_TLBIDX);
239
240 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBEHI),
238 - &env->CSR_TLBEHI);
241 + &sys->CSR_TLBEHI);
242
243 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBELO0),
241 - &env->CSR_TLBELO0);
244 + &sys->CSR_TLBELO0);
245
246 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBELO1),
244 - &env->CSR_TLBELO1);
247 + &sys->CSR_TLBELO1);
248
249 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ASID),
247 - &env->CSR_ASID);
250 + &sys->CSR_ASID);
251
252 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGDL),
250 - &env->CSR_PGDL);
253 + &sys->CSR_PGDL);
254
255 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGDH),
253 - &env->CSR_PGDH);
256 + &sys->CSR_PGDH);
257
258 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGD),
256 - &env->CSR_PGD);
259 + &sys->CSR_PGD);
260
261 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PWCL),
259 - &env->CSR_PWCL);
262 + &sys->CSR_PWCL);
263
264 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PWCH),
262 - &env->CSR_PWCH);
265 + &sys->CSR_PWCH);
266
267 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_STLBPS),
265 - &env->CSR_STLBPS);
268 + &sys->CSR_STLBPS);
269
270 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_RVACFG),
268 - &env->CSR_RVACFG);
271 + &sys->CSR_RVACFG);
272
273 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CPUID),
271 - &env->CSR_CPUID);
274 + &sys->CSR_CPUID);
275
276 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG1),
274 - &env->CSR_PRCFG1);
277 + &sys->CSR_PRCFG1);
278
279 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG2),
277 - &env->CSR_PRCFG2);
280 + &sys->CSR_PRCFG2);
281
282 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG3),
280 - &env->CSR_PRCFG3);
283 + &sys->CSR_PRCFG3);
284
285 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(0)),
283 - &env->CSR_SAVE[0]);
286 + &sys->CSR_SAVE[0]);
287
288 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(1)),
286 - &env->CSR_SAVE[1]);
289 + &sys->CSR_SAVE[1]);
290
291 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(2)),
289 - &env->CSR_SAVE[2]);
292 + &sys->CSR_SAVE[2]);
293
294 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(3)),
292 - &env->CSR_SAVE[3]);
295 + &sys->CSR_SAVE[3]);
296
297 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(4)),
295 - &env->CSR_SAVE[4]);
298 + &sys->CSR_SAVE[4]);
299
300 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(5)),
298 - &env->CSR_SAVE[5]);
301 + &sys->CSR_SAVE[5]);
302
303 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(6)),
301 - &env->CSR_SAVE[6]);
304 + &sys->CSR_SAVE[6]);
305
306 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(7)),
304 - &env->CSR_SAVE[7]);
307 + &sys->CSR_SAVE[7]);
308
309 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TID),
307 - &env->CSR_TID);
310 + &sys->CSR_TID);
311
312 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CNTC),
310 - &env->CSR_CNTC);
313 + &sys->CSR_CNTC);
314
315 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TICLR),
313 - &env->CSR_TICLR);
316 + &sys->CSR_TICLR);
317
318 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_LLBCTL),
316 - &env->CSR_LLBCTL);
319 + &sys->CSR_LLBCTL);
320
321 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_IMPCTL1),
319 - &env->CSR_IMPCTL1);
322 + &sys->CSR_IMPCTL1);
323
324 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_IMPCTL2),
322 - &env->CSR_IMPCTL2);
325 + &sys->CSR_IMPCTL2);
326
327 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRENTRY),
325 - &env->CSR_TLBRENTRY);
328 + &sys->CSR_TLBRENTRY);
329
330 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRBADV),
328 - &env->CSR_TLBRBADV);
331 + &sys->CSR_TLBRBADV);
332
333 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRERA),
331 - &env->CSR_TLBRERA);
334 + &sys->CSR_TLBRERA);
335
336 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRSAVE),
334 - &env->CSR_TLBRSAVE);
337 + &sys->CSR_TLBRSAVE);
338
339 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRELO0),
337 - &env->CSR_TLBRELO0);
340 + &sys->CSR_TLBRELO0);
341
342 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRELO1),
340 - &env->CSR_TLBRELO1);
343 + &sys->CSR_TLBRELO1);
344
345 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBREHI),
343 - &env->CSR_TLBREHI);
346 + &sys->CSR_TLBREHI);
347
348 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRPRMD),
346 - &env->CSR_TLBRPRMD);
349 + &sys->CSR_TLBRPRMD);
350
351 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(0)),
349 - &env->CSR_DMW[0]);
352 + &sys->CSR_DMW[0]);
353
354 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(1)),
352 - &env->CSR_DMW[1]);
355 + &sys->CSR_DMW[1]);
356
357 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(2)),
355 - &env->CSR_DMW[2]);
358 + &sys->CSR_DMW[2]);
359
360 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(3)),
358 - &env->CSR_DMW[3]);
361 + &sys->CSR_DMW[3]);
362
363 ret |= kvm_loongarch_get_pmu(cs);
364
365 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TVAL),
363 - &env->CSR_TVAL);
366 + &sys->CSR_TVAL);
367
368 ret |= kvm_get_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TCFG),
366 - &env->CSR_TCFG);
369 + &sys->CSR_TCFG);
370
371 return ret;
372 }
@@ -372,165 +375,166 @@ static int kvm_loongarch_put_csr(CPUState *cs, KvmPutState level)
375 {
376 int ret = 0;
377 CPULoongArchState *env = cpu_env(cs);
378 + CPUSysState *sys = env_sys(env);
379
380 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CRMD),
377 - &env->CSR_CRMD);
381 + &sys->CSR_CRMD);
382
383 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRMD),
380 - &env->CSR_PRMD);
384 + &sys->CSR_PRMD);
385
386 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_EUEN),
383 - &env->CSR_EUEN);
387 + &sys->CSR_EUEN);
388
389 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_MISC),
386 - &env->CSR_MISC);
390 + &sys->CSR_MISC);
391
392 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ECFG),
389 - &env->CSR_ECFG);
393 + &sys->CSR_ECFG);
394
395 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ESTAT),
392 - &env->CSR_ESTAT);
396 + &sys->CSR_ESTAT);
397
398 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ERA),
395 - &env->CSR_ERA);
399 + &sys->CSR_ERA);
400
401 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_BADV),
398 - &env->CSR_BADV);
402 + &sys->CSR_BADV);
403
404 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_BADI),
401 - &env->CSR_BADI);
405 + &sys->CSR_BADI);
406
407 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_EENTRY),
404 - &env->CSR_EENTRY);
408 + &sys->CSR_EENTRY);
409
410 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBIDX),
407 - &env->CSR_TLBIDX);
411 + &sys->CSR_TLBIDX);
412
413 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBEHI),
410 - &env->CSR_TLBEHI);
414 + &sys->CSR_TLBEHI);
415
416 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBELO0),
413 - &env->CSR_TLBELO0);
417 + &sys->CSR_TLBELO0);
418
419 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBELO1),
416 - &env->CSR_TLBELO1);
420 + &sys->CSR_TLBELO1);
421
422 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_ASID),
419 - &env->CSR_ASID);
423 + &sys->CSR_ASID);
424
425 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGDL),
422 - &env->CSR_PGDL);
426 + &sys->CSR_PGDL);
427
428 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGDH),
425 - &env->CSR_PGDH);
429 + &sys->CSR_PGDH);
430
431 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PGD),
428 - &env->CSR_PGD);
432 + &sys->CSR_PGD);
433
434 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PWCL),
431 - &env->CSR_PWCL);
435 + &sys->CSR_PWCL);
436
437 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PWCH),
434 - &env->CSR_PWCH);
438 + &sys->CSR_PWCH);
439
440 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_STLBPS),
437 - &env->CSR_STLBPS);
441 + &sys->CSR_STLBPS);
442
443 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_RVACFG),
440 - &env->CSR_RVACFG);
444 + &sys->CSR_RVACFG);
445
446 /* CPUID is constant after poweron, it should be set only once */
447 if (level >= KVM_PUT_FULL_STATE) {
448 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CPUID),
445 - &env->CSR_CPUID);
449 + &sys->CSR_CPUID);
450 }
451
452 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG1),
449 - &env->CSR_PRCFG1);
453 + &sys->CSR_PRCFG1);
454
455 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG2),
452 - &env->CSR_PRCFG2);
456 + &sys->CSR_PRCFG2);
457
458 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_PRCFG3),
455 - &env->CSR_PRCFG3);
459 + &sys->CSR_PRCFG3);
460
461 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(0)),
458 - &env->CSR_SAVE[0]);
462 + &sys->CSR_SAVE[0]);
463
464 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(1)),
461 - &env->CSR_SAVE[1]);
465 + &sys->CSR_SAVE[1]);
466
467 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(2)),
464 - &env->CSR_SAVE[2]);
468 + &sys->CSR_SAVE[2]);
469
470 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(3)),
467 - &env->CSR_SAVE[3]);
471 + &sys->CSR_SAVE[3]);
472
473 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(4)),
470 - &env->CSR_SAVE[4]);
474 + &sys->CSR_SAVE[4]);
475
476 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(5)),
473 - &env->CSR_SAVE[5]);
477 + &sys->CSR_SAVE[5]);
478
479 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(6)),
476 - &env->CSR_SAVE[6]);
480 + &sys->CSR_SAVE[6]);
481
482 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_SAVE(7)),
479 - &env->CSR_SAVE[7]);
483 + &sys->CSR_SAVE[7]);
484
485 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TID),
482 - &env->CSR_TID);
486 + &sys->CSR_TID);
487
488 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_CNTC),
485 - &env->CSR_CNTC);
489 + &sys->CSR_CNTC);
490
491 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TICLR),
488 - &env->CSR_TICLR);
492 + &sys->CSR_TICLR);
493
494 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_LLBCTL),
491 - &env->CSR_LLBCTL);
495 + &sys->CSR_LLBCTL);
496
497 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_IMPCTL1),
494 - &env->CSR_IMPCTL1);
498 + &sys->CSR_IMPCTL1);
499
500 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_IMPCTL2),
497 - &env->CSR_IMPCTL2);
501 + &sys->CSR_IMPCTL2);
502
503 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRENTRY),
500 - &env->CSR_TLBRENTRY);
504 + &sys->CSR_TLBRENTRY);
505
506 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRBADV),
503 - &env->CSR_TLBRBADV);
507 + &sys->CSR_TLBRBADV);
508
509 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRERA),
506 - &env->CSR_TLBRERA);
510 + &sys->CSR_TLBRERA);
511
512 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRSAVE),
509 - &env->CSR_TLBRSAVE);
513 + &sys->CSR_TLBRSAVE);
514
515 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRELO0),
512 - &env->CSR_TLBRELO0);
516 + &sys->CSR_TLBRELO0);
517
518 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRELO1),
515 - &env->CSR_TLBRELO1);
519 + &sys->CSR_TLBRELO1);
520
521 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBREHI),
518 - &env->CSR_TLBREHI);
522 + &sys->CSR_TLBREHI);
523
524 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TLBRPRMD),
521 - &env->CSR_TLBRPRMD);
525 + &sys->CSR_TLBRPRMD);
526
527 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(0)),
524 - &env->CSR_DMW[0]);
528 + &sys->CSR_DMW[0]);
529
530 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(1)),
527 - &env->CSR_DMW[1]);
531 + &sys->CSR_DMW[1]);
532
533 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(2)),
530 - &env->CSR_DMW[2]);
534 + &sys->CSR_DMW[2]);
535
536 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_DMW(3)),
533 - &env->CSR_DMW[3]);
537 + &sys->CSR_DMW[3]);
538
539 ret |= kvm_loongarch_put_pmu(cs);
540
@@ -539,10 +543,10 @@ static int kvm_loongarch_put_csr(CPUState *cs, KvmPutState level)
543 * guest timer
544 */
545 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TVAL),
542 - &env->CSR_TVAL);
546 + &sys->CSR_TVAL);
547
548 ret |= kvm_set_one_reg(cs, KVM_IOC_CSRID(LOONGARCH_CSR_TCFG),
545 - &env->CSR_TCFG);
549 + &sys->CSR_TCFG);
550 return ret;
551 }
552