mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
virtio,vdpa: fixes
Fixes up some issues in rc1. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmFSRZgPHG1zdEByZWRo YXQuY29tAAoJECgfDbjSjVRpSnYIAMNstllnJgyDR0GUGO850AKv0x2acncf66wc J5vjWFWh5rtmdZSMhvA5mo3J8h/7s6Mn67fCwKt0Ii6fi1f6eIl4OBDYBfV8wXkN +e8eQAUboi3HLqsiuFSNpJTHnD70xbU4inxiTjaBndXaxk20nkWJsd1Mvfmxh+mE uMRnumAwrdL3c0n0Vrcq8j+zxLhlDXSFjICd6l+xRwPigsX/5gY+V5tPQg4lhnk+ VuC2Q0eJHmCEjrVi4Tx7dkoDu9U4Go5CnVF0MF9AzVf7JYBPJPks3r17unMe+ZAI Nvwa/39no2APa9wZPQnGk5V9rOPtYFa6XXsCufN4BbtlqVX5AlQ= =2oo6 -----END PGP SIGNATURE----- Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio/vdpa fixes from Michael Tsirkin: "Fixes up some issues in rc1" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vdpa: potential uninitialized return in vhost_vdpa_va_map() vdpa/mlx5: Avoid executing set_vq_ready() if device is reset vdpa/mlx5: Clear ready indication for control VQ vduse: Cleanup the old kernel states after reset failure vduse: missing error code in vduse_init() virtio: don't fail on !of_device_is_compatible
This commit is contained in:
commit
d33bec7b3d
@ -1714,6 +1714,9 @@ static void mlx5_vdpa_set_vq_ready(struct vdpa_device *vdev, u16 idx, bool ready
|
||||
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
|
||||
struct mlx5_vdpa_virtqueue *mvq;
|
||||
|
||||
if (!mvdev->actual_features)
|
||||
return;
|
||||
|
||||
if (!is_index_valid(mvdev, idx))
|
||||
return;
|
||||
|
||||
@ -2145,6 +2148,8 @@ static void clear_vqs_ready(struct mlx5_vdpa_net *ndev)
|
||||
|
||||
for (i = 0; i < ndev->mvdev.max_vqs; i++)
|
||||
ndev->vqs[i].ready = false;
|
||||
|
||||
ndev->mvdev.cvq.ready = false;
|
||||
}
|
||||
|
||||
static void mlx5_vdpa_set_status(struct vdpa_device *vdev, u8 status)
|
||||
|
@ -665,13 +665,11 @@ static void vduse_vdpa_set_config(struct vdpa_device *vdpa, unsigned int offset,
|
||||
static int vduse_vdpa_reset(struct vdpa_device *vdpa)
|
||||
{
|
||||
struct vduse_dev *dev = vdpa_to_vduse(vdpa);
|
||||
|
||||
if (vduse_dev_set_status(dev, 0))
|
||||
return -EIO;
|
||||
int ret = vduse_dev_set_status(dev, 0);
|
||||
|
||||
vduse_dev_reset(dev);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static u32 vduse_vdpa_get_generation(struct vdpa_device *vdpa)
|
||||
@ -1593,8 +1591,10 @@ static int vduse_init(void)
|
||||
|
||||
vduse_irq_wq = alloc_workqueue("vduse-irq",
|
||||
WQ_HIGHPRI | WQ_SYSFS | WQ_UNBOUND, 0);
|
||||
if (!vduse_irq_wq)
|
||||
if (!vduse_irq_wq) {
|
||||
ret = -ENOMEM;
|
||||
goto err_wq;
|
||||
}
|
||||
|
||||
ret = vduse_domain_init();
|
||||
if (ret)
|
||||
|
@ -640,7 +640,7 @@ static int vhost_vdpa_va_map(struct vhost_vdpa *v,
|
||||
u64 offset, map_size, map_iova = iova;
|
||||
struct vdpa_map_file *map_file;
|
||||
struct vm_area_struct *vma;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
mmap_read_lock(dev->mm);
|
||||
|
||||
|
@ -345,8 +345,13 @@ static int virtio_device_of_init(struct virtio_device *dev)
|
||||
ret = snprintf(compat, sizeof(compat), "virtio,device%x", dev->id.device);
|
||||
BUG_ON(ret >= sizeof(compat));
|
||||
|
||||
/*
|
||||
* On powerpc/pseries virtio devices are PCI devices so PCI
|
||||
* vendor/device ids play the role of the "compatible" property.
|
||||
* Simply don't init of_node in this case.
|
||||
*/
|
||||
if (!of_device_is_compatible(np, compat)) {
|
||||
ret = -EINVAL;
|
||||
ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user