From: Halil Pasic <pasic@linux.ibm.com>
To: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
Cornelia Huck <cohuck@redhat.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Sebastian Ott <sebott@linux.ibm.com>
Cc: Halil Pasic <pasic@linux.ibm.com>,
virtualization@lists.linux-foundation.org,
Christian Borntraeger <borntraeger@de.ibm.com>,
Viktor Mihajlovski <mihajlov@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
Claudio Imbrenda <imbrenda@linux.ibm.com>,
Farhan Ali <alifm@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>
Subject: [RFC PATCH 02/12] virtio/s390: DMA support for virtio-ccw
Date: Fri, 5 Apr 2019 01:16:12 +0200 [thread overview]
Message-ID: <20190404231622.52531-3-pasic@linux.ibm.com> (raw)
In-Reply-To: <20190404231622.52531-1-pasic@linux.ibm.com>
Currently we have a problem if a virtio-ccw device has
VIRTIO_F_IOMMU_PLATFORM. In future we do want to support DMA API with
virtio-ccw.
Let us do the plumbing, so the feature VIRTIO_F_IOMMU_PLATFORM works
with virtio-ccw.
Let us also switch from legacy avail/used accessors to the DMA aware
ones (even if it isn't strictly necessary).
Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
---
drivers/s390/virtio/virtio_ccw.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index edf4afe2d688..5956c9e820bb 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -66,6 +66,7 @@ struct virtio_ccw_device {
bool device_lost;
unsigned int config_ready;
void *airq_info;
+ __u64 dma_mask;
};
struct vq_info_block_legacy {
@@ -536,8 +537,8 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
info->info_block->s.desc = queue;
info->info_block->s.index = i;
info->info_block->s.num = info->num;
- info->info_block->s.avail = (__u64)virtqueue_get_avail(vq);
- info->info_block->s.used = (__u64)virtqueue_get_used(vq);
+ info->info_block->s.avail = (__u64)virtqueue_get_avail_addr(vq);
+ info->info_block->s.used = (__u64)virtqueue_get_used_addr(vq);
ccw->count = sizeof(info->info_block->s);
}
ccw->cmd_code = CCW_CMD_SET_VQ;
@@ -769,10 +770,8 @@ static u64 virtio_ccw_get_features(struct virtio_device *vdev)
static void ccw_transport_features(struct virtio_device *vdev)
{
/*
- * Packed ring isn't enabled on virtio_ccw for now,
- * because virtio_ccw uses some legacy accessors,
- * e.g. virtqueue_get_avail() and virtqueue_get_used()
- * which aren't available in packed ring currently.
+ * There shouldn't be anything that precludes supporting paced.
+ * TODO: Remove the limitation after having another look into this.
*/
__virtio_clear_bit(vdev, VIRTIO_F_RING_PACKED);
}
@@ -1255,6 +1254,18 @@ static int virtio_ccw_online(struct ccw_device *cdev)
ret = -ENOMEM;
goto out_free;
}
+ vcdev->vdev.dev.parent = &cdev->dev;
+ cdev->dev.dma_mask = &vcdev->dma_mask;
+
+ ret = dma_set_mask_and_coherent(&cdev->dev, DMA_BIT_MASK(64));
+ if (ret)
+ ret = dma_set_mask_and_coherent(&cdev->dev,
+ DMA_BIT_MASK(32));
+ if (ret) {
+ dev_warn(&cdev->dev, "Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this might not work.\n");
+ goto out_free;
+ }
+
vcdev->config_block = kzalloc(sizeof(*vcdev->config_block),
GFP_DMA | GFP_KERNEL);
if (!vcdev->config_block) {
--
2.16.4
next prev parent reply other threads:[~2019-04-04 23:16 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-04 23:16 [RFC PATCH 00/12] s390: virtio: support protected virtualization Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 01/12] virtio/s390: use vring_create_virtqueue Halil Pasic
2019-04-08 11:01 ` Cornelia Huck
2019-04-08 11:01 ` Cornelia Huck
2019-04-08 12:37 ` Michael S. Tsirkin
2019-04-08 12:37 ` Michael S. Tsirkin
2019-04-08 13:20 ` Halil Pasic
2019-04-04 23:16 ` Halil Pasic [this message]
2019-04-09 9:57 ` [RFC PATCH 02/12] virtio/s390: DMA support for virtio-ccw Cornelia Huck
2019-04-09 9:57 ` Cornelia Huck
2019-04-09 11:29 ` Halil Pasic
2019-04-09 13:01 ` Cornelia Huck
2019-04-09 13:01 ` Cornelia Huck
2019-04-09 13:23 ` Halil Pasic
2019-04-09 15:47 ` Cornelia Huck
2019-04-09 15:47 ` Cornelia Huck
2019-04-04 23:16 ` [RFC PATCH 03/12] s390/mm: force swiotlb for protected virtualization Halil Pasic
2019-04-09 10:16 ` Cornelia Huck
2019-04-09 10:16 ` Cornelia Huck
2019-04-09 10:54 ` Halil Pasic
2019-04-09 17:18 ` Cornelia Huck
2019-04-09 17:18 ` Cornelia Huck
2019-04-09 12:22 ` Christoph Hellwig
2019-04-09 12:22 ` Christoph Hellwig
2019-04-09 12:39 ` Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 04/12] s390/cio: introduce cio DMA pool Halil Pasic
2019-04-09 10:44 ` Cornelia Huck
2019-04-09 10:44 ` Cornelia Huck
2019-04-09 12:11 ` Halil Pasic
2019-04-09 17:14 ` Cornelia Huck
2019-04-09 17:14 ` Cornelia Huck
2019-04-10 15:31 ` Halil Pasic
2019-04-10 16:07 ` Cornelia Huck
2019-04-10 16:07 ` Cornelia Huck
2019-04-10 16:52 ` Halil Pasic
2019-04-11 18:25 ` Sebastian Ott
2019-04-11 18:25 ` Sebastian Ott
2019-04-12 11:20 ` Halil Pasic
2019-04-12 12:12 ` Sebastian Ott
2019-04-12 12:12 ` Sebastian Ott
2019-04-12 15:30 ` Halil Pasic
2019-04-16 12:50 ` Sebastian Ott
2019-04-16 12:50 ` Sebastian Ott
2019-04-16 13:31 ` Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 05/12] s390/cio: add protected virtualization support to cio Halil Pasic
2019-04-09 17:55 ` Cornelia Huck
2019-04-09 17:55 ` Cornelia Huck
2019-04-10 0:10 ` Halil Pasic
2019-04-10 8:25 ` Cornelia Huck
2019-04-10 8:25 ` Cornelia Huck
2019-04-10 13:02 ` Halil Pasic
2019-04-10 16:16 ` Cornelia Huck
2019-04-10 16:16 ` Cornelia Huck
2019-04-11 14:15 ` Sebastian Ott
2019-04-11 14:15 ` Sebastian Ott
2019-04-12 11:29 ` Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 06/12] s390/airq: use DMA memory for adapter interrupts Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 07/12] virtio/s390: use DMA memory for ccw I/O Halil Pasic
2019-04-10 8:42 ` Cornelia Huck
2019-04-10 8:42 ` Cornelia Huck
2019-04-10 14:42 ` Halil Pasic
2019-04-10 16:21 ` Cornelia Huck
2019-04-10 16:21 ` Cornelia Huck
2019-04-04 23:16 ` [RFC PATCH 08/12] virtio/s390: add indirection to indicators access Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 09/12] virtio/s390: use DMA memory for notifiers Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 10/12] virtio/s390: consolidate DMA allocations Halil Pasic
2019-04-10 8:46 ` Cornelia Huck
2019-04-10 8:46 ` Cornelia Huck
2019-04-10 15:12 ` Halil Pasic
2019-04-10 16:36 ` Cornelia Huck
2019-04-10 16:36 ` Cornelia Huck
2019-04-10 17:48 ` Halil Pasic
2019-04-11 9:24 ` Cornelia Huck
2019-04-11 9:24 ` Cornelia Huck
2019-04-11 10:10 ` Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 11/12] virtio/s390: use the cio DMA pool Halil Pasic
2019-04-04 23:16 ` [RFC PATCH 12/12] virtio/s390: make airq summary indicators DMA Halil Pasic
2019-04-10 9:20 ` [RFC PATCH 00/12] s390: virtio: support protected virtualization Cornelia Huck
2019-04-10 9:20 ` Cornelia Huck
2019-04-10 15:57 ` Halil Pasic
2019-04-10 16:24 ` Cornelia Huck
2019-04-10 16:24 ` Cornelia Huck
2019-04-12 13:47 ` David Hildenbrand
2019-04-12 13:47 ` David Hildenbrand
2019-04-16 11:10 ` Halil Pasic
2019-04-16 11:50 ` David Hildenbrand
2019-04-16 11:50 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190404231622.52531-3-pasic@linux.ibm.com \
--to=pasic@linux.ibm.com \
--cc=alifm@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=farman@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mihajlov@linux.ibm.com \
--cc=schwidefsky@de.ibm.com \
--cc=sebott@linux.ibm.com \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.