[PATCH v11 0/2] s390: virtio: let arch validate VIRTIO features

Pierre Morel
2020-09-07T09:39:29Z

Hi all,

The goal of the series is to give a chance to the architecture
to validate VIRTIO device features.

The tests are back to virtio_finalize_features.

No more argument for the architecture callback which only reports
if the architecture needs guest memory access restrictions for
VIRTIO.

I renamed the callback to arch_has_restricted_virtio_memory_access,
the config option to ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS,
and VIRTIO_F_IOMMU_PLATFORM to VIRTIO_F_ACCESS_PLATFORM.

Regards,
Pierre

Pierre Morel (2):
virtio: let arch advertise guest's memory access restrictions
s390: virtio: PV needs VIRTIO I/O device protection

arch/s390/Kconfig | 1 +
arch/s390/mm/init.c | 10 ++++++++++
drivers/virtio/Kconfig | 6 ++++++
drivers/virtio/virtio.c | 15 +++++++++++++++
include/linux/virtio_config.h | 10 ++++++++++
5 files changed, 42 insertions(+)

--
2.17.1

Changelog

to v11:
- replaced VIRTIO_F_IOMMU_PLATFORM with VIRTIO_F_ACCESS_PLATFORM

to v10:
- removed virtio_config.h unnecessary include
- wording
(Connie)

to v9:

- move virtio tests back to virtio_finalize_features
(Connie)

- remove virtio device argument

to v8:

- refactoring by using an optional callback
(Connie)

to v7:

- typo in warning message
(Connie)
to v6:

- rewording warning messages
(Connie, Halil)

to v5:

- return directly from S390 arch_validate_virtio_features()
when the guest is not protected.
(Connie)

- Somme rewording
(Connie, Michael)

- moved back code from arch/s390/ ...kernel/uv.c to ...mm/init.c
(Christian)

to v4:

- separate virtio and arch code
(Pierre)

- moved code from arch/s390/mm/init.c to arch/s390/kernel/uv.c
(as interpreted from Heiko's comment)

- moved validation inside the arch code
(Connie)

- moved the call to arch validation before VIRTIO_F_1 test
(Michael)

to v3:

- add warning
(Connie, Christian)

- add comment
(Connie)

- change hook name
(Halil, Connie)

to v2:

- put the test in virtio_finalize_features()
(Connie)

- put the test inside VIRTIO core
(Jason)

- pass a virtio device as parameter
(Halil)