lkml.org 
[lkml]   [2018]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/6] virtio_console: don't tie bufs to a vq
    On Fri, Apr 20, 2018 at 09:18:01PM +0300, Michael S. Tsirkin wrote:
    > an allocated buffer doesn't need to be tied to a vq -
    > only vq->vdev is ever used. Pass the function the
    > just what it needs - the vdev.
    >
    > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    > ---
    > drivers/char/virtio_console.c | 14 +++++++-------
    > 1 file changed, 7 insertions(+), 7 deletions(-)
    >
    > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
    > index 468f061..3e56f32 100644
    > --- a/drivers/char/virtio_console.c
    > +++ b/drivers/char/virtio_console.c
    > @@ -422,7 +422,7 @@ static void reclaim_dma_bufs(void)
    > }
    > }
    >
    > -static struct port_buffer *alloc_buf(struct virtqueue *vq, size_t buf_size,
    > +static struct port_buffer *alloc_buf(struct virtio_device *vdev, size_t buf_size,
    > int pages)
    > {
    > struct port_buffer *buf;
    > @@ -445,16 +445,16 @@ static struct port_buffer *alloc_buf(struct virtqueue *vq, size_t buf_size,
    > return buf;
    > }
    >
    > - if (is_rproc_serial(vq->vdev)) {
    > + if (is_rproc_serial(vdev)) {
    > /*
    > * Allocate DMA memory from ancestor. When a virtio
    > * device is created by remoteproc, the DMA memory is
    > * associated with the grandparent device:
    > * vdev => rproc => platform-dev.
    > */
    > - if (!vq->vdev->dev.parent || !vq->vdev->dev.parent->parent)
    > + if (!vdev->dev.parent || !vdev->dev.parent->parent)
    > goto free_buf;
    > - buf->dev = vq->vdev->dev.parent->parent;
    > + buf->dev = vdev->dev.parent->parent;
    >
    > /* Increase device refcnt to avoid freeing it */
    > get_device(buf->dev);
    > @@ -838,7 +838,7 @@ static ssize_t port_fops_write(struct file *filp, const char __user *ubuf,
    >
    > count = min((size_t)(32 * 1024), count);
    >
    > - buf = alloc_buf(port->out_vq, count, 0);
    > + buf = alloc_buf(port->portdev->vdev, count, 0);
    > if (!buf)
    > return -ENOMEM;
    >
    > @@ -957,7 +957,7 @@ static ssize_t port_fops_splice_write(struct pipe_inode_info *pipe,
    > if (ret < 0)
    > goto error_out;
    >
    > - buf = alloc_buf(port->out_vq, 0, pipe->nrbufs);
    > + buf = alloc_buf(port->portdev->vdev, 0, pipe->nrbufs);
    > if (!buf) {
    > ret = -ENOMEM;
    > goto error_out;
    > @@ -1374,7 +1374,7 @@ static unsigned int fill_queue(struct virtqueue *vq, spinlock_t *lock)
    >
    > nr_added_bufs = 0;
    > do {
    > - buf = alloc_buf(vq, PAGE_SIZE, 0);
    > + buf = alloc_buf(vq->vdev, PAGE_SIZE, 0);
    > if (!buf)
    > break;
    >
    > --
    > MST

    <formletter>

    This is not the correct way to submit patches for inclusion in the
    stable kernel tree. Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
    for how to do this properly.

    </formletter>

    \
     
     \ /
      Last update: 2018-04-21 09:31    [W:4.422 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site