@@ -803,13 +803,14 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
{
ARMCPU *cpu;
uint32_t switched_level;
+ MemTxAttrs attrs = MEMTXATTRS_CPU(cs);
if (kvm_irqchip_in_kernel()) {
/*
* We only need to sync timer states with user-space interrupt
* controllers, so return early and save cycles if we don't.
*/
- return MEMTXATTRS_UNSPECIFIED;
+ return attrs;
}
cpu = ARM_CPU(cs);
@@ -850,7 +851,7 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run)
qemu_mutex_unlock_iothread();
}
- return MEMTXATTRS_UNSPECIFIED;
+ return attrs;
}
void kvm_arm_vm_state_change(void *opaque, bool running, RunState state)
@@ -1005,6 +1006,7 @@ int kvm_arch_fixup_msi_route(struct kvm_irq_routing_entry *route,
hwaddr xlat, len, doorbell_gpa;
MemoryRegionSection mrs;
MemoryRegion *mr;
+ MemTxAttrs attrs = MEMTXATTRS_PCI(dev);
if (as == &address_space_memory) {
return 0;
@@ -1014,8 +1016,7 @@ int kvm_arch_fixup_msi_route(struct kvm_irq_routing_entry *route,
RCU_READ_LOCK_GUARD();
- mr = address_space_translate(as, address, &xlat, &len, true,
- MEMTXATTRS_UNSPECIFIED);
+ mr = address_space_translate(as, address, &xlat, &len, true, attrs);
if (!mr) {
return 1;