Message ID | 20211127072910.1261824-2-eric.auger@redhat.com |
---|---|
State | New |
Headers | show |
Series | virtio-iommu: config related fixes and qtest | expand |
Hi, On 11/27/21 8:29 AM, Eric Auger wrote: > The spec says "the driver must not write to device configuration > fields". So remove the set_config() callback which anyway did > not do anything. Forgot to mention that with the advent of VIRTIO_IOMMU_F_BYPASS_CONFIG feature and bypass field in struct virtio_iommu_config coming, this will change soon. Only the bypass field will be settable. But this is not yet available in the imported linux header. Thanks Eric > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > --- > hw/virtio/trace-events | 1 - > hw/virtio/virtio-iommu.c | 14 -------------- > 2 files changed, 15 deletions(-) > > diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events > index 650e521e351..54bd7da00c8 100644 > --- a/hw/virtio/trace-events > +++ b/hw/virtio/trace-events > @@ -92,7 +92,6 @@ virtio_iommu_device_reset(void) "reset!" > virtio_iommu_get_features(uint64_t features) "device supports features=0x%"PRIx64 > virtio_iommu_device_status(uint8_t status) "driver status = %d" > virtio_iommu_get_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_range=%d probe_size=0x%x" > -virtio_iommu_set_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_bits=%d probe_size=0x%x" > virtio_iommu_attach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" > virtio_iommu_detach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" > virtio_iommu_map(uint32_t domain_id, uint64_t virt_start, uint64_t virt_end, uint64_t phys_start, uint32_t flags) "domain=%d virt_start=0x%"PRIx64" virt_end=0x%"PRIx64 " phys_start=0x%"PRIx64" flags=%d" > diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c > index 1b23e8e18c7..645c0aa3997 100644 > --- a/hw/virtio/virtio-iommu.c > +++ b/hw/virtio/virtio-iommu.c > @@ -832,19 +832,6 @@ static void virtio_iommu_get_config(VirtIODevice *vdev, uint8_t *config_data) > memcpy(config_data, &dev->config, sizeof(struct virtio_iommu_config)); > } > > -static void virtio_iommu_set_config(VirtIODevice *vdev, > - const uint8_t *config_data) > -{ > - struct virtio_iommu_config config; > - > - memcpy(&config, config_data, sizeof(struct virtio_iommu_config)); > - trace_virtio_iommu_set_config(config.page_size_mask, > - config.input_range.start, > - config.input_range.end, > - config.domain_range.end, > - config.probe_size); > -} > - > static uint64_t virtio_iommu_get_features(VirtIODevice *vdev, uint64_t f, > Error **errp) > { > @@ -1185,7 +1172,6 @@ static void virtio_iommu_class_init(ObjectClass *klass, void *data) > vdc->unrealize = virtio_iommu_device_unrealize; > vdc->reset = virtio_iommu_device_reset; > vdc->get_config = virtio_iommu_get_config; > - vdc->set_config = virtio_iommu_set_config; > vdc->get_features = virtio_iommu_get_features; > vdc->set_status = virtio_iommu_set_status; > vdc->vmsd = &vmstate_virtio_iommu_device;
On Sat, Nov 27, 2021 at 08:29:07AM +0100, Eric Auger wrote: > The spec says "the driver must not write to device configuration > fields". So remove the set_config() callback which anyway did > not do anything. > > Signed-off-by: Eric Auger <eric.auger@redhat.com> Removing this makes sense. For bypass, I'll add the function back with a reduced trace Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org> > --- > hw/virtio/trace-events | 1 - > hw/virtio/virtio-iommu.c | 14 -------------- > 2 files changed, 15 deletions(-) > > diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events > index 650e521e351..54bd7da00c8 100644 > --- a/hw/virtio/trace-events > +++ b/hw/virtio/trace-events > @@ -92,7 +92,6 @@ virtio_iommu_device_reset(void) "reset!" > virtio_iommu_get_features(uint64_t features) "device supports features=0x%"PRIx64 > virtio_iommu_device_status(uint8_t status) "driver status = %d" > virtio_iommu_get_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_range=%d probe_size=0x%x" > -virtio_iommu_set_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_bits=%d probe_size=0x%x" > virtio_iommu_attach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" > virtio_iommu_detach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" > virtio_iommu_map(uint32_t domain_id, uint64_t virt_start, uint64_t virt_end, uint64_t phys_start, uint32_t flags) "domain=%d virt_start=0x%"PRIx64" virt_end=0x%"PRIx64 " phys_start=0x%"PRIx64" flags=%d" > diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c > index 1b23e8e18c7..645c0aa3997 100644 > --- a/hw/virtio/virtio-iommu.c > +++ b/hw/virtio/virtio-iommu.c > @@ -832,19 +832,6 @@ static void virtio_iommu_get_config(VirtIODevice *vdev, uint8_t *config_data) > memcpy(config_data, &dev->config, sizeof(struct virtio_iommu_config)); > } > > -static void virtio_iommu_set_config(VirtIODevice *vdev, > - const uint8_t *config_data) > -{ > - struct virtio_iommu_config config; > - > - memcpy(&config, config_data, sizeof(struct virtio_iommu_config)); > - trace_virtio_iommu_set_config(config.page_size_mask, > - config.input_range.start, > - config.input_range.end, > - config.domain_range.end, > - config.probe_size); > -} > - > static uint64_t virtio_iommu_get_features(VirtIODevice *vdev, uint64_t f, > Error **errp) > { > @@ -1185,7 +1172,6 @@ static void virtio_iommu_class_init(ObjectClass *klass, void *data) > vdc->unrealize = virtio_iommu_device_unrealize; > vdc->reset = virtio_iommu_device_reset; > vdc->get_config = virtio_iommu_get_config; > - vdc->set_config = virtio_iommu_set_config; > vdc->get_features = virtio_iommu_get_features; > vdc->set_status = virtio_iommu_set_status; > vdc->vmsd = &vmstate_virtio_iommu_device; > -- > 2.26.3 >
diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events index 650e521e351..54bd7da00c8 100644 --- a/hw/virtio/trace-events +++ b/hw/virtio/trace-events @@ -92,7 +92,6 @@ virtio_iommu_device_reset(void) "reset!" virtio_iommu_get_features(uint64_t features) "device supports features=0x%"PRIx64 virtio_iommu_device_status(uint8_t status) "driver status = %d" virtio_iommu_get_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_range=%d probe_size=0x%x" -virtio_iommu_set_config(uint64_t page_size_mask, uint64_t start, uint64_t end, uint32_t domain_range, uint32_t probe_size) "page_size_mask=0x%"PRIx64" start=0x%"PRIx64" end=0x%"PRIx64" domain_bits=%d probe_size=0x%x" virtio_iommu_attach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" virtio_iommu_detach(uint32_t domain_id, uint32_t ep_id) "domain=%d endpoint=%d" virtio_iommu_map(uint32_t domain_id, uint64_t virt_start, uint64_t virt_end, uint64_t phys_start, uint32_t flags) "domain=%d virt_start=0x%"PRIx64" virt_end=0x%"PRIx64 " phys_start=0x%"PRIx64" flags=%d" diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 1b23e8e18c7..645c0aa3997 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -832,19 +832,6 @@ static void virtio_iommu_get_config(VirtIODevice *vdev, uint8_t *config_data) memcpy(config_data, &dev->config, sizeof(struct virtio_iommu_config)); } -static void virtio_iommu_set_config(VirtIODevice *vdev, - const uint8_t *config_data) -{ - struct virtio_iommu_config config; - - memcpy(&config, config_data, sizeof(struct virtio_iommu_config)); - trace_virtio_iommu_set_config(config.page_size_mask, - config.input_range.start, - config.input_range.end, - config.domain_range.end, - config.probe_size); -} - static uint64_t virtio_iommu_get_features(VirtIODevice *vdev, uint64_t f, Error **errp) { @@ -1185,7 +1172,6 @@ static void virtio_iommu_class_init(ObjectClass *klass, void *data) vdc->unrealize = virtio_iommu_device_unrealize; vdc->reset = virtio_iommu_device_reset; vdc->get_config = virtio_iommu_get_config; - vdc->set_config = virtio_iommu_set_config; vdc->get_features = virtio_iommu_get_features; vdc->set_status = virtio_iommu_set_status; vdc->vmsd = &vmstate_virtio_iommu_device;
The spec says "the driver must not write to device configuration fields". So remove the set_config() callback which anyway did not do anything. Signed-off-by: Eric Auger <eric.auger@redhat.com> --- hw/virtio/trace-events | 1 - hw/virtio/virtio-iommu.c | 14 -------------- 2 files changed, 15 deletions(-)