From patchwork Sun Oct 26 09:38:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Axel Lin X-Patchwork-Id: 5153751 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id E7E509F30B for ; Sun, 26 Oct 2014 09:41:42 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1C35E202F8 for ; Sun, 26 Oct 2014 09:41:42 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3BDAB20204 for ; Sun, 26 Oct 2014 09:41:41 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XiKI4-00035X-Rt; Sun, 26 Oct 2014 09:39:12 +0000 Received: from mail-pd0-f180.google.com ([209.85.192.180]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XiKI2-00031j-IK for linux-arm-kernel@lists.infradead.org; Sun, 26 Oct 2014 09:39:10 +0000 Received: by mail-pd0-f180.google.com with SMTP id ft15so1937183pdb.11 for ; Sun, 26 Oct 2014 02:38:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-type:mime-version:content-transfer-encoding; bh=SKbyRtL9TeBqbZLoT7HVMmfj6Zz3BnZsU+6gVqRs4j8=; b=hrtirPtUtX6IFU6E4OGl4UgoUb66uWP3C/EahlnEcrYy+UGNVCUIbHeSek/cCH+xZC g9xrC5RtUSgvQhifCsZNDsTRikcwHcah7xmSxR4JCnKw8m9qi/WW0lGrMlSDHj6rMUIS clP6Dldwe6bDaTuKtXm5ke9UHASGGSszjklga6g0k6gu4NtKLdebIhkZlerbE6np0neB worFuMGhoZvc7FzLKc80JFEgnU08sDtGp+0t9IgkGux3H3qQZzhdp3D0JG+A7XCx2ZBo JwPlb/fjtLTF4sn3REFIX7iedyLRM3FCJmQy7WpxlLO9xRvlX6Fm8rwOUI8hR7KAepNr R6gw== X-Gm-Message-State: ALoCoQnOMkINDzqtdgbgPdfDy4AN4NG26TXTEwLgEoJSlcKuIxGn0xfF6CSq5u5dG6EQnSUqU3lU X-Received: by 10.70.131.199 with SMTP id oo7mr112458pdb.163.1414316328944; Sun, 26 Oct 2014 02:38:48 -0700 (PDT) Received: from [192.168.0.105] (218-164-141-238.dynamic.hinet.net. [218.164.141.238]) by mx.google.com with ESMTPSA id yp10sm8039810pac.18.2014.10.26.02.38.47 for (version=SSLv3 cipher=RC4-SHA bits=128/128); Sun, 26 Oct 2014 02:38:48 -0700 (PDT) Message-ID: <1414316325.4290.3.camel@phoenix> Subject: [PATCH 2/3] soc: ti: knav_qmss_queue: Fix unbalanced locking in knav_pool_create() From: Axel Lin To: Santosh Shilimkar Date: Sun, 26 Oct 2014 17:38:45 +0800 In-Reply-To: <1414316264.4290.2.camel@phoenix> References: <1414316264.4290.2.camel@phoenix> X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20141026_023910_623088_B22C08EC X-CRM114-Status: GOOD ( 10.34 ) X-Spam-Score: -0.9 (/) Cc: Sandeep Nair , linux-arm-kernel , linux-kernel@vger.kernel.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Don't call mutex_unlock() in the error patch if the mutex_lock() is not called. Signed-off-by: Axel Lin --- drivers/soc/ti/knav_qmss_queue.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c index 0a2c863..d66aaf2 100644 --- a/drivers/soc/ti/knav_qmss_queue.c +++ b/drivers/soc/ti/knav_qmss_queue.c @@ -785,7 +785,7 @@ void *knav_pool_create(const char *name, dev_err(kdev->dev, "out of descs in region(%d) for pool(%s)\n", region_id, name); ret = -ENOMEM; - goto err; + goto err_unlock; } /* Region maintains a sorted (by region offset) list of pools @@ -815,15 +815,16 @@ void *knav_pool_create(const char *name, dev_err(kdev->dev, "pool(%s) create failed: fragmented desc pool in region(%d)\n", name, region_id); ret = -ENOMEM; - goto err; + goto err_unlock; } mutex_unlock(&knav_dev_lock); kdesc_fill_pool(pool); return pool; -err: +err_unlock: mutex_unlock(&knav_dev_lock); +err: kfree(pool->name); devm_kfree(kdev->dev, pool); return ERR_PTR(ret);