Displaying 2 results from an estimated 2 matches for "freebuf".
Did you mean:
free_buf
2012 Sep 24
2
[PATCHv4] virtio_console: Add support for remoteproc serial
...;vdev->features[0] & (1 << VIRTIO_CONSOLE_F_MULTIPORT);
}
+static DEFINE_SPINLOCK(list_lock);
+static LIST_HEAD(pending_free_list);
+
static void free_buf(struct port_buffer *buf)
{
- kfree(buf->buf);
+ unsigned long flags;
+
+ if (!buf->dev) {
+ kfree(buf->buf);
+ goto freebuf;
+ }
+
+ BUG_ON(!rproc_enabled);
+
+ /* dma_free_coherent requires interrupts to be enabled */
+ if (rproc_enabled && !irqs_disabled()) {
+ dma_free_coherent(buf->dev, buf->size, buf->buf, buf->dma);
+
+ /* Release device refcnt and allow it to be freed */
+ might_sleep();
+...
2012 Sep 24
2
[PATCHv4] virtio_console: Add support for remoteproc serial
...;vdev->features[0] & (1 << VIRTIO_CONSOLE_F_MULTIPORT);
}
+static DEFINE_SPINLOCK(list_lock);
+static LIST_HEAD(pending_free_list);
+
static void free_buf(struct port_buffer *buf)
{
- kfree(buf->buf);
+ unsigned long flags;
+
+ if (!buf->dev) {
+ kfree(buf->buf);
+ goto freebuf;
+ }
+
+ BUG_ON(!rproc_enabled);
+
+ /* dma_free_coherent requires interrupts to be enabled */
+ if (rproc_enabled && !irqs_disabled()) {
+ dma_free_coherent(buf->dev, buf->size, buf->buf, buf->dma);
+
+ /* Release device refcnt and allow it to be freed */
+ might_sleep();
+...