From e2f7d1dcc8583aa8bfab41fafdef26f013d7499c Mon Sep 17 00:00:00 2001 From: Damian Hobson-Garcia Date: Fri, 16 Nov 2012 14:46:11 +0900 Subject: [PATCH] --- yaml --- r: 337012 b: refs/heads/master c: 439926c81c01f31f9ffa7af7bf2d242b7f794f3c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/uio/uio_dmem_genirq.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 49e98ef2c12c..8e7185655213 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87c4d1a7dce956b86e34329ed1b11a751ba9a8ea +refs/heads/master: 439926c81c01f31f9ffa7af7bf2d242b7f794f3c diff --git a/trunk/drivers/uio/uio_dmem_genirq.c b/trunk/drivers/uio/uio_dmem_genirq.c index 7be8d0421cae..bbdf92559e3f 100644 --- a/trunk/drivers/uio/uio_dmem_genirq.c +++ b/trunk/drivers/uio/uio_dmem_genirq.c @@ -62,8 +62,6 @@ static int uio_dmem_genirq_open(struct uio_info *info, struct inode *inode) (dma_addr_t *)&uiomem->addr, GFP_KERNEL); if (!addr) { uiomem->addr = DMEM_MAP_ERROR; - ret = -ENOMEM; - break; } priv->dmem_region_vaddr[dmem_region++] = addr; ++uiomem; @@ -93,11 +91,13 @@ static int uio_dmem_genirq_release(struct uio_info *info, struct inode *inode) while (!priv->refcnt && uiomem < &priv->uioinfo->mem[MAX_UIO_MAPS]) { if (!uiomem->size) break; - - dma_free_coherent(&priv->pdev->dev, uiomem->size, - priv->dmem_region_vaddr[dmem_region++], - uiomem->addr); + if (priv->dmem_region_vaddr[dmem_region]) { + dma_free_coherent(&priv->pdev->dev, uiomem->size, + priv->dmem_region_vaddr[dmem_region], + uiomem->addr); + } uiomem->addr = DMEM_MAP_ERROR; + ++dmem_region; ++uiomem; }