Displaying 20 results from an estimated 49 matches for "virtio_ccw_setup_vq".
2017 May 16
0
[PATCH 2/3] s390: virtio: Improve a size determination in virtio_ccw_setup_vq()
...| 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 447fe718c0ab..bfb845d7faa7 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -495,5 +495,5 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
unsigned long flags;
/* Allocate queue. */
- info = kzalloc(sizeof(struct virtio_ccw_vq_info), GFP_KERNEL);
+ info = kzalloc(sizeof(*info), GFP_KERNEL);
if (!info) {
--
2.13.0
2017 May 16
3
[PATCH 0/3] S390-virtio: Adjustments for three function implementations
...us Elfring <elfring at users.sourceforge.net>
Date: Tue, 16 May 2017 17:43:21 +0200
A few update suggestions were taken into account
from static source code analysis.
Markus Elfring (3):
Delete error messages for failed memory allocations in two functions
Improve a size determination in virtio_ccw_setup_vq()
Adjust a null pointer check in two functions
drivers/s390/virtio/virtio_ccw.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
--
2.13.0
2017 May 16
3
[PATCH 0/3] S390-virtio: Adjustments for three function implementations
...us Elfring <elfring at users.sourceforge.net>
Date: Tue, 16 May 2017 17:43:21 +0200
A few update suggestions were taken into account
from static source code analysis.
Markus Elfring (3):
Delete error messages for failed memory allocations in two functions
Improve a size determination in virtio_ccw_setup_vq()
Adjust a null pointer check in two functions
drivers/s390/virtio/virtio_ccw.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
--
2.13.0
2019 Apr 08
1
[RFC PATCH 01/12] virtio/s390: use vring_create_virtqueue
...s(+), 19 deletions(-)
>
> diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
> index 74c328321889..edf4afe2d688 100644
> --- a/drivers/s390/virtio/virtio_ccw.c
> +++ b/drivers/s390/virtio/virtio_ccw.c
> @@ -516,17 +512,10 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> err = info->num;
> goto out_err;
> }
> - size = PAGE_ALIGN(vring_size(info->num, KVM_VIRTIO_CCW_RING_ALIGN));
> - info->queue = alloc_pages_exact(size, GFP_KERNEL | __GFP_ZERO);
> - if (info->queue == NULL) {
> - dev_warn(&...
2019 Apr 26
0
[PATCH 01/10] virtio/s390: use vring_create_virtqueue
..._vq(struct virtqueue *vq, struct ccw1 *ccw)
ret, index);
vring_del_virtqueue(vq);
- size = PAGE_ALIGN(vring_size(info->num, KVM_VIRTIO_CCW_RING_ALIGN));
- free_pages_exact(info->queue, size);
kfree(info->info_block);
kfree(info);
}
@@ -494,8 +490,9 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
int err;
struct virtqueue *vq = NULL;
struct virtio_ccw_vq_info *info;
- unsigned long size = 0; /* silence the compiler */
+ u64 queue;
unsigned long flags;
+ bool may_reduce;
/* Allocate queue. */
info = kzalloc(sizeof(struct virtio_ccw_vq_info), GFP_KERN...
2015 Sep 10
0
[PATCH 1/1] virtio/s390: handle failures of READ_VQ_CONF ccw
From: Pierre Morel <pmorel at linux.vnet.ibm.com>
In virtio_ccw_read_vq_conf() the return value of ccw_io_helper()
was not checked.
If the configuration could not be read properly, we'd wrongly assume a
queue size of 0.
Let's propagate any I/O error to virtio_ccw_setup_vq() so it may
properly fail.
Signed-off-by: Pierre Morel <pmorel at linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck at de.ibm.com>
---
drivers/s390/virtio/virtio_ccw.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/s390/virtio/virti...
2015 Sep 10
2
[PATCH 0/1] virtio/s390: one bugfix
Michael,
here's a bugfix for the virtio-ccw driver.
Question: How would you like to get patches? This one is formatted
against your current linux-next branch; I can prepare a branch for
you to pull from as well.
Pierre Morel (1):
virtio/s390: handle failures of READ_VQ_CONF ccw
drivers/s390/virtio/virtio_ccw.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
--
2.3.8
2015 Sep 10
2
[PATCH 0/1] virtio/s390: one bugfix
Michael,
here's a bugfix for the virtio-ccw driver.
Question: How would you like to get patches? This one is formatted
against your current linux-next branch; I can prepare a branch for
you to pull from as well.
Pierre Morel (1):
virtio/s390: handle failures of READ_VQ_CONF ccw
drivers/s390/virtio/virtio_ccw.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
--
2.3.8
2019 Jan 04
0
[RFC PATCH 1/1] s390/virtio: handle find on invalid queue gracefully
...> return -ENOMEM;
>
> for (i = 0; i < nvqs; ++i) {
> vqs[i] = virtio_ccw_setup_vq(vdev, i, callbacks[i], names[i],
> ctx ? ctx[i] : false, ccw);
> if (IS_ERR(vqs[i])) {
> ret = PTR_ERR(vqs[i]);
>...
2018 Dec 28
0
[PATCH v1 2/2] virtio: don't allocate vqs when names[i] = NULL
...*indicatorp = NULL;
- int ret, i;
+ int ret, i, queue_idx = 0;
struct ccw1 *ccw;
ccw = kzalloc(sizeof(*ccw), GFP_DMA | GFP_KERNEL);
@@ -643,8 +643,14 @@ static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs,
return -ENOMEM;
for (i = 0; i < nvqs; ++i) {
- vqs[i] = virtio_ccw_setup_vq(vdev, i, callbacks[i], names[i],
- ctx ? ctx[i] : false, ccw);
+ if (!names[i]) {
+ vqs[i] = NULL;
+ continue;
+ }
+
+ vqs[i] = virtio_ccw_setup_vq(vdev, queue_idx++, callbacks[i],
+ names[i], ctx ? ctx[i] : false,
+ ccw);
if (IS_ERR(vqs[i])) {
ret = PTR_ERR...
2023 Mar 23
1
[PATCH v4] virtio: add VIRTIO_F_NOTIFICATION_DATA feature support
...th_data(struct virtqueue *vq)
> +{
> + return virtio_ccw_do_kvm_notify(vq, vring_notification_data(vq));
> +}
> +
> static int virtio_ccw_read_vq_conf(struct virtio_ccw_device *vcdev,
> struct ccw1 *ccw, int index)
> {
> @@ -501,6 +511,9 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> u64 queue;
> unsigned long flags;
> bool may_reduce;
> + bool (*notify)(struct virtqueue *vq) = __virtio_test_bit(vdev,
> + VIRTIO_F_NOTIFICATION_DATA) ?
> + virtio_ccw_kvm_notify_with_data : virtio_ccw_kvm_notify;
>
> /* Allocate queu...
2023 Mar 23
1
[PATCH v4] virtio: add VIRTIO_F_NOTIFICATION_DATA feature support
...g_notification_data(vq));
> > > +}
> > > +
> > > static int virtio_ccw_read_vq_conf(struct virtio_ccw_device *vcdev,
> > > struct ccw1 *ccw, int index)
> > > {
> > > @@ -501,6 +511,9 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> > > u64 queue;
> > > unsigned long flags;
> > > bool may_reduce;
> > > + bool (*notify)(struct virtqueue *vq) = __virtio_test_bit(vdev,
> > > + VIRTIO_F_NOTIFICATION_DATA) ?
> > > +...
2019 Apr 26
0
[PATCH 09/10] virtio/s390: use DMA memory for ccw I/O and classic notifiers
..._alloc_struct(vdev, ccw);
if (!ccw)
return;
@@ -488,7 +508,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list)
virtio_ccw_del_vq(vq, ccw);
- kfree(ccw);
+ vc_dma_free_struct(vdev, ccw);
}
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
@@ -511,8 +531,7 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
err = -ENOMEM;
goto out_err;
}
- info->info_block = kzalloc(sizeof(*info->info_block),
- GFP_DMA | GFP_KERNEL);
+ vc_dma_alloc_struct(vdev, info->info_bloc...
2019 May 23
0
[PATCH v2 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
..._alloc_struct(vdev, ccw);
if (!ccw)
return;
@@ -489,7 +509,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list)
virtio_ccw_del_vq(vq, ccw);
- kfree(ccw);
+ vc_dma_free_struct(vdev, ccw);
}
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
@@ -512,8 +532,7 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
err = -ENOMEM;
goto out_err;
}
- info->info_block = kzalloc(sizeof(*info->info_block),
- GFP_DMA | GFP_KERNEL);
+ vc_dma_alloc_struct(vdev, info->info_bloc...
2019 May 29
0
[PATCH v3 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
..._alloc_struct(vdev, ccw);
if (!ccw)
return;
@@ -489,7 +509,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list)
virtio_ccw_del_vq(vq, ccw);
- kfree(ccw);
+ vc_dma_free_struct(vdev, ccw);
}
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
@@ -512,8 +532,7 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
err = -ENOMEM;
goto out_err;
}
- info->info_block = kzalloc(sizeof(*info->info_block),
- GFP_DMA | GFP_KERNEL);
+ vc_dma_alloc_struct(vdev, info->info_bloc...
2019 Jun 06
0
[PATCH v4 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...if (!ccw)
return;
@@ -489,7 +494,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list)
virtio_ccw_del_vq(vq, ccw);
- kfree(ccw);
+ ccw_device_dma_free(vcdev->cdev, ccw, sizeof(*ccw));
}
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
@@ -512,8 +517,8 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
err = -ENOMEM;
goto out_err;
}
- info->info_block = kzalloc(sizeof(*info->info_block),
- GFP_DMA | GFP_KERNEL);
+ info->info_block = ccw_device_dma_zalloc(...
2019 Jun 12
0
[PATCH v5 7/8] virtio/s390: use DMA memory for ccw I/O and classic notifiers
...if (!ccw)
return;
@@ -489,7 +494,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list)
virtio_ccw_del_vq(vq, ccw);
- kfree(ccw);
+ ccw_device_dma_free(vcdev->cdev, ccw, sizeof(*ccw));
}
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
@@ -512,8 +517,8 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
err = -ENOMEM;
goto out_err;
}
- info->info_block = kzalloc(sizeof(*info->info_block),
- GFP_DMA | GFP_KERNEL);
+ info->info_block = ccw_device_dma_zalloc(...
2023 Mar 23
0
[PATCH v5] virtio: add VIRTIO_F_NOTIFICATION_DATA feature support
...h_data(struct virtqueue *vq)
> +{
> + return virtio_ccw_do_kvm_notify(vq, vring_notification_data(vq));
> +}
> +
> static int virtio_ccw_read_vq_conf(struct virtio_ccw_device *vcdev,
> struct ccw1 *ccw, int index)
> {
> @@ -501,6 +511,12 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> u64 queue;
> unsigned long flags;
> bool may_reduce;
> + bool (*notify)(struct virtqueue *vq);
Generally speaking, the longest statement should be placed at the top.
Other LGTM.
Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com>
> +...
2023 Mar 22
1
[PATCH v4] virtio: add VIRTIO_F_NOTIFICATION_DATA feature support
...th_data(struct virtqueue *vq)
> +{
> + return virtio_ccw_do_kvm_notify(vq, vring_notification_data(vq));
> +}
> +
> static int virtio_ccw_read_vq_conf(struct virtio_ccw_device *vcdev,
> struct ccw1 *ccw, int index)
> {
> @@ -501,6 +511,9 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
> u64 queue;
> unsigned long flags;
> bool may_reduce;
> + bool (*notify)(struct virtqueue *vq) = __virtio_test_bit(vdev,
> + VIRTIO_F_NOTIFICATION_DATA) ?
> + virtio_ccw_kvm_notify_with_data : virtio_ccw_kvm_notify;
>
> /* Allocate qu...
2017 Mar 29
2
[PATCH 2/6] virtio: add context flag to find vqs
...}
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 0ed209f..2a76ea7 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -484,7 +484,7 @@ static void virtio_ccw_del_vqs(struct virtio_device *vdev)
static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
int i, vq_callback_t *callback,
- const char *name,
+ const char *name, bool ctx,
struct ccw1 *ccw)
{
struct virtio_ccw_device *vcdev = to_vc_device(vdev);
@@ -522,7 +522,7 @@ static struct virtqueue *virtio_ccw_setup_vq(struct...