From: Krzysztof Hałasa Date: Thu, 18 Sep 2014 13:12:02 +0000 (+0200) Subject: Fix unbalanced mutex in dma_pool_create(). X-Git-Tag: firefly_0821_release~176^2~3215 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=153a9f131f50420b7ce008c94f1c6374cbc460d7;p=firefly-linux-kernel-4.4.55.git Fix unbalanced mutex in dma_pool_create(). dma_pool_create() needs to unlock the mutex in error case. The bug was introduced in the 3.16 by commit cc6b664aa26d ("mm/dmapool.c: remove redundant NULL check for dev in dma_pool_create()")/ Signed-off-by: Krzysztof Hałasa Cc: stable@vger.kernel.org # v3.16 Signed-off-by: Linus Torvalds --- diff --git a/mm/dmapool.c b/mm/dmapool.c index 306baa594f95..ba8019b063e1 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -176,7 +176,7 @@ struct dma_pool *dma_pool_create(const char *name, struct device *dev, if (list_empty(&dev->dma_pools) && device_create_file(dev, &dev_attr_pools)) { kfree(retval); - return NULL; + retval = NULL; } else list_add(&retval->pools, &dev->dma_pools); mutex_unlock(&pools_lock);