On Thu, Apr 30, 2020 at 03:02:36PM +0800, Philippe Mathieu-Daudé wrote: > On 4/30/20 7:23 AM, Yan Zhao wrote: > > for vfio regions that are without write permission, > > drop guest writes to those regions. > > > > Cc: Philippe Mathieu-Daudé <phi...@redhat.com> > > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.co> > > The full domain name is redhat.com. > oops. really sorry....
> > Signed-off-by: Yan Zhao <yan.y.z...@intel.com> > > Signed-off-by: Xin Zeng <xin.z...@intel.com> > > --- > > hw/vfio/common.c | 13 +++++++++++-- > > 1 file changed, 11 insertions(+), 2 deletions(-) > > > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > > index 0b3593b3c0..2a4fedfeaa 100644 > > --- a/hw/vfio/common.c > > +++ b/hw/vfio/common.c > > @@ -38,6 +38,7 @@ > > #include "sysemu/reset.h" > > #include "trace.h" > > #include "qapi/error.h" > > +#include "qemu/log.h" > > > > VFIOGroupList vfio_group_list = > > QLIST_HEAD_INITIALIZER(vfio_group_list); > > @@ -190,6 +191,16 @@ void vfio_region_write(void *opaque, hwaddr addr, > > uint64_t qword; > > } buf; > > > > + trace_vfio_region_write(vbasedev->name, region->nr, addr, data, size); > > + if (!(region->flags & VFIO_REGION_INFO_FLAG_WRITE)) { > > + qemu_log_mask(LOG_GUEST_ERROR, > > + "Invalid write to read only vfio region (%s:region%d" > > + "+0x%"HWADDR_PRIx" size %d)\n", vbasedev->name, > > + region->nr, addr, size); > > + > > + return; > > + } > > + > > switch (size) { > > case 1: > > buf.byte = data; > > @@ -215,8 +226,6 @@ void vfio_region_write(void *opaque, hwaddr addr, > > addr, data, size); > > } > > > > - trace_vfio_region_write(vbasedev->name, region->nr, addr, data, size); > > - > > /* > > * A read or write to a BAR always signals an INTx EOI. This will > > * do nothing if not pending (including not in INTx mode). We assume > > >