search for: port_buffer

Displaying 20 results from an estimated 111 matches for "port_buffer".

2012 Dec 12
2
[PATCHv9 0/2] virtio_console: Add rproc_serial driver
...oducing "rproc_serial" I've done a refactoring of the transmit buffer handling. NOTE: These two patches are identical to first two patches of the V8 patch-set, but are rebased to virtio-next. Regards, Sjur Sjur Br?ndeland (2): virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial drivers/char/virtio_console.c | 317 +++++++++++++++++++++++++++------------ include/uapi/linux/virtio_ids.h | 1 + 2 files changed, 221 insertions(+), 97 deletions(-) -- 1.7.5.4
2012 Dec 12
2
[PATCHv9 0/2] virtio_console: Add rproc_serial driver
...oducing "rproc_serial" I've done a refactoring of the transmit buffer handling. NOTE: These two patches are identical to first two patches of the V8 patch-set, but are rebased to virtio-next. Regards, Sjur Sjur Br?ndeland (2): virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial drivers/char/virtio_console.c | 317 +++++++++++++++++++++++++++------------ include/uapi/linux/virtio_ids.h | 1 + 2 files changed, 221 insertions(+), 97 deletions(-) -- 1.7.5.4
2012 Sep 25
5
[PATCHv6 0/3] virtio_console: Add rproc_serial device
...m.au> cc: Michael S. Tsirkin <mst at redhat.com> cc: Amit Shah <amit.shah at redhat.com> cc: Linus Walleij <linus.walleij at linaro.org> cc: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com> Sjur Br?ndeland (3): virtio_console:Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial virtio_console: Don't initialize buffers to zero drivers/char/virtio_console.c | 318 +++++++++++++++++++++++++++++------------ include/linux/virtio_ids.h | 1 + 2 files changed, 228 insertions(+), 91 deletions(-) -- 1.7.5.4
2012 Sep 25
5
[PATCHv6 0/3] virtio_console: Add rproc_serial device
...m.au> cc: Michael S. Tsirkin <mst at redhat.com> cc: Amit Shah <amit.shah at redhat.com> cc: Linus Walleij <linus.walleij at linaro.org> cc: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com> Sjur Br?ndeland (3): virtio_console:Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial virtio_console: Don't initialize buffers to zero drivers/char/virtio_console.c | 318 +++++++++++++++++++++++++++++------------ include/linux/virtio_ids.h | 1 + 2 files changed, 228 insertions(+), 91 deletions(-) -- 1.7.5.4
2012 Sep 24
2
[PATCHv4] virtio_console: Add support for remoteproc serial
...; cc: Amit Shah <amit.shah at redhat.com> cc: Ohad Ben-Cohen <ohad at wizery.com> cc: Linus Walleij <linus.walleij at linaro.org> cc: Arnd Bergmann <arnd at arndb.de> --- Changes since v3 are mostly related to freeing of dma-buffers: - Change port_fops_write() to use struct port_buffer when allocating memory. This is done in order to store the dma-address of the allocated buffers, so the correct dma-address can be passed to dma_free_coherent(). - Added pending_free_list for port_buf. dma_free_coherent() requires the irqs to be enabled, so if irqs are disabled we queue the...
2012 Sep 24
2
[PATCHv4] virtio_console: Add support for remoteproc serial
...; cc: Amit Shah <amit.shah at redhat.com> cc: Ohad Ben-Cohen <ohad at wizery.com> cc: Linus Walleij <linus.walleij at linaro.org> cc: Arnd Bergmann <arnd at arndb.de> --- Changes since v3 are mostly related to freeing of dma-buffers: - Change port_fops_write() to use struct port_buffer when allocating memory. This is done in order to store the dma-address of the allocated buffers, so the correct dma-address can be passed to dma_free_coherent(). - Added pending_free_list for port_buf. dma_free_coherent() requires the irqs to be enabled, so if irqs are disabled we queue the...
2018 Apr 21
2
[PATCH 1/6] virtio_console: don't tie bufs to a vq
...gt; 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 bu...
2018 Apr 21
2
[PATCH 1/6] virtio_console: don't tie bufs to a vq
...gt; 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 bu...
2012 Oct 30
5
[PATCHv8 0/3]virtio_console: Add rproc_serial driver
...- Removed extra added lines. - Removed superfluous checks before calling reclaim_dma_bufs(). - Rusty raised some question regarding garbage collection of the out-vq, so I moved this into a separate patch. Thanks, Sjur Sjur Br?ndeland (3): virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial virtio_console: Remove buffers from out_vq at port removal drivers/char/virtio_console.c | 325 +++++++++++++++++++++++++++------------ include/uapi/linux/virtio_ids.h | 1 + 2 files changed, 230 insertions(+), 96 deletions(-) -- 1.7.9...
2012 Oct 30
5
[PATCHv8 0/3]virtio_console: Add rproc_serial driver
...- Removed extra added lines. - Removed superfluous checks before calling reclaim_dma_bufs(). - Rusty raised some question regarding garbage collection of the out-vq, so I moved this into a separate patch. Thanks, Sjur Sjur Br?ndeland (3): virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial virtio_console: Remove buffers from out_vq at port removal drivers/char/virtio_console.c | 325 +++++++++++++++++++++++++++------------ include/uapi/linux/virtio_ids.h | 1 + 2 files changed, 230 insertions(+), 96 deletions(-) -- 1.7.9...
2012 Oct 15
7
[PATCHv7 0/4] virtio_console: Add rproc_serial driver
..., hopefully all review comments has been addressed. The fist patch is a bugfix and migth be applicable for 3.7. Thanks, Sjur Sjur Br?ndeland (4): virtio_console: Free buffer if splice fails virtio_console: Use kmalloc instead of kzalloc virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial drivers/char/virtio_console.c | 328 +++++++++++++++++++++++++++++------------ include/linux/virtio_ids.h | 1 + 2 files changed, 234 insertions(+), 95 deletions(-) -- 1.7.5.4
2012 Oct 15
7
[PATCHv7 0/4] virtio_console: Add rproc_serial driver
..., hopefully all review comments has been addressed. The fist patch is a bugfix and migth be applicable for 3.7. Thanks, Sjur Sjur Br?ndeland (4): virtio_console: Free buffer if splice fails virtio_console: Use kmalloc instead of kzalloc virtio_console: Merge struct buffer_token into struct port_buffer virtio_console: Add support for remoteproc serial drivers/char/virtio_console.c | 328 +++++++++++++++++++++++++++++------------ include/linux/virtio_ids.h | 1 + 2 files changed, 234 insertions(+), 95 deletions(-) -- 1.7.5.4
2019 Mar 04
5
[PATCH] virtio_console: free unused buffers with virtio port
....c b/drivers/char/virtio_console.c index fbeb71953526..5fbf2ac73111 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -1506,15 +1506,25 @@ static void remove_port(struct kref *kref) kfree(port); } +static void remove_unused_bufs(struct virtqueue *vq) +{ + struct port_buffer *buf; + + while ((buf = virtqueue_detach_unused_buf(vq))) + free_buf(buf, true); +} + static void remove_port_data(struct port *port) { spin_lock_irq(&port->inbuf_lock); /* Remove unused data this port might have received. */ discard_port_data(port); + remove_unused_bufs(port->in...
2019 Mar 04
5
[PATCH] virtio_console: free unused buffers with virtio port
....c b/drivers/char/virtio_console.c index fbeb71953526..5fbf2ac73111 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -1506,15 +1506,25 @@ static void remove_port(struct kref *kref) kfree(port); } +static void remove_unused_bufs(struct virtqueue *vq) +{ + struct port_buffer *buf; + + while ((buf = virtqueue_detach_unused_buf(vq))) + free_buf(buf, true); +} + static void remove_port_data(struct port *port) { spin_lock_irq(&port->inbuf_lock); /* Remove unused data this port might have received. */ discard_port_data(port); + remove_unused_bufs(port->in...
2018 Apr 20
13
[PATCH 0/6] virtio-console: spec compliance fixes
Turns out virtio console tries to take a buffer out of an active vq. Works by sheer luck, and is explicitly forbidden by spec. And while going over it I saw that error handling is also broken - failure is easy to trigger if I force allocations to fail. Lightly tested. Michael S. Tsirkin (6): virtio_console: don't tie bufs to a vq virtio: add ability to iterate over vqs virtio_console:
2018 Apr 20
13
[PATCH 0/6] virtio-console: spec compliance fixes
Turns out virtio console tries to take a buffer out of an active vq. Works by sheer luck, and is explicitly forbidden by spec. And while going over it I saw that error handling is also broken - failure is easy to trigger if I force allocations to fail. Lightly tested. Michael S. Tsirkin (6): virtio_console: don't tie bufs to a vq virtio: add ability to iterate over vqs virtio_console:
2012 Sep 03
3
[RFC 1/2] virtio_console: Add support for DMA memory allocation
...+#include <linux/dma-mapping.h> #include "../tty/hvc/hvc_console.h" /* @@ -334,20 +335,60 @@ static inline bool use_multiport(struct ports_device *portdev) return portdev->vdev->features[0] & (1 << VIRTIO_CONSOLE_F_MULTIPORT); } -static void free_buf(struct port_buffer *buf) +/* Allcoate data buffer from DMA memory if requested */ +static inline void * +alloc_databuf(struct virtio_device *vdev, size_t size, dma_addr_t *dma_handle, + gfp_t flag) { - kfree(buf->buf); +#ifdef CONFIG_HAS_DMA + if (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_DMA_MEM)) { + struc...
2012 Sep 03
3
[RFC 1/2] virtio_console: Add support for DMA memory allocation
...+#include <linux/dma-mapping.h> #include "../tty/hvc/hvc_console.h" /* @@ -334,20 +335,60 @@ static inline bool use_multiport(struct ports_device *portdev) return portdev->vdev->features[0] & (1 << VIRTIO_CONSOLE_F_MULTIPORT); } -static void free_buf(struct port_buffer *buf) +/* Allcoate data buffer from DMA memory if requested */ +static inline void * +alloc_databuf(struct virtio_device *vdev, size_t size, dma_addr_t *dma_handle, + gfp_t flag) { - kfree(buf->buf); +#ifdef CONFIG_HAS_DMA + if (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_DMA_MEM)) { + struc...
2018 Apr 20
0
[PATCH 1/6] virtio_console: don't tie bufs to a vq
...e 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;...
2018 Apr 20
0
[PATCH 3/6] virtio_console: free buffers after reset
...ivers/char/virtio_console.c b/drivers/char/virtio_console.c index 3e56f32..26a66ff 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -1402,7 +1402,6 @@ static int add_port(struct ports_device *portdev, u32 id) { char debugfs_name[16]; struct port *port; - struct port_buffer *buf; dev_t devt; unsigned int nr_added_bufs; int err; @@ -1513,8 +1512,6 @@ static int add_port(struct ports_device *portdev, u32 id) return 0; free_inbufs: - while ((buf = virtqueue_detach_unused_buf(port->in_vq))) - free_buf(buf, true); free_device: device_destroy(pdrvdata.clas...