mirror of https://gitee.com/openkylin/qemu.git
kvm-all.c: define smp_wmb and use it for coalesced mmio
Acked-by: "Michael S. Tsirkin" <mst@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
6312b92853
commit
85199474d0
|
@ -21,6 +21,7 @@
|
||||||
#include <linux/kvm.h>
|
#include <linux/kvm.h>
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
|
#include "qemu-barrier.h"
|
||||||
#include "sysemu.h"
|
#include "sysemu.h"
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "gdbstub.h"
|
#include "gdbstub.h"
|
||||||
|
@ -730,7 +731,7 @@ void kvm_flush_coalesced_mmio_buffer(void)
|
||||||
ent = &ring->coalesced_mmio[ring->first];
|
ent = &ring->coalesced_mmio[ring->first];
|
||||||
|
|
||||||
cpu_physical_memory_write(ent->phys_addr, ent->data, ent->len);
|
cpu_physical_memory_write(ent->phys_addr, ent->data, ent->len);
|
||||||
/* FIXME smp_wmb() */
|
smp_wmb();
|
||||||
ring->first = (ring->first + 1) % KVM_COALESCED_MMIO_MAX;
|
ring->first = (ring->first + 1) % KVM_COALESCED_MMIO_MAX;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#ifndef __QEMU_BARRIER_H
|
||||||
|
#define __QEMU_BARRIER_H 1
|
||||||
|
|
||||||
|
/* FIXME: arch dependant, x86 version */
|
||||||
|
#define smp_wmb() asm volatile("" ::: "memory")
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue