virtio/s390: use DMA memory for ccw I/O and classic notifiers
authorHalil Pasic <pasic@linux.ibm.com>
Mon, 1 Oct 2018 17:01:58 +0000 (19:01 +0200)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Sat, 15 Jun 2019 10:25:37 +0000 (12:25 +0200)
commit48720ba56891570e3b750b271d80efb631478630
treed627142b215c82aed80c2513564f1040bda21370
parent22a4a639b9cebff4568f32202e96d6f286251b72
virtio/s390: use DMA memory for ccw I/O and classic notifiers

Before virtio-ccw could get away with not using DMA API for the pieces of
memory it does ccw I/O with. With protected virtualization this has to
change, since the hypervisor needs to read and sometimes also write these
pieces of memory.

The hypervisor is supposed to poke the classic notifiers, if these are
used, out of band with regards to ccw I/O. So these need to be allocated
as DMA memory (which is shared memory for protected virtualization
guests).

Let us factor out everything from struct virtio_ccw_device that needs to
be DMA memory in a satellite that is allocated as such.

Note: The control blocks of I/O instructions do not need to be shared.
These are marshalled by the ultravisor.

Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Michael Mueller <mimu@linux.ibm.com>
Tested-by: Michael Mueller <mimu@linux.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
drivers/s390/virtio/virtio_ccw.c