virtio_pci_modern: __force cast the notify mapping
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 4 May 2021 08:12:10 +0000 (04:12 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 4 May 2021 08:19:58 +0000 (04:19 -0400)
When switching virtio_pci_modern to use a helper for mappings we lost an
__iomem tag. We should restore it.

However, virtio_pci_modern is playing tricks by hiding an iomem pointer
in a regular vq->priv pointer. Which is okay as long as it's
all contained within a single file, but we need to __force cast
the value otherwise we'll get sparse warnings.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 7dca6c0ea96b ("virtio-pci library: switch to use vp_modern_map_vq_notify()")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/virtio/virtio_pci_modern.c

index 722ea44..30654d3 100644 (file)
@@ -224,7 +224,7 @@ static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev,
                                virtqueue_get_avail_addr(vq),
                                virtqueue_get_used_addr(vq));
 
-       vq->priv = vp_modern_map_vq_notify(mdev, index, NULL);
+       vq->priv = (void __force *)vp_modern_map_vq_notify(mdev, index, NULL);
        if (!vq->priv) {
                err = -ENOMEM;
                goto err_map_notify;