From patchwork Thu Jun 28 02:32:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "(Exiting) Baolin Wang" X-Patchwork-Id: 10492935 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7E3AD601BE for ; Thu, 28 Jun 2018 02:33:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F30628E11 for ; Thu, 28 Jun 2018 02:33:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5F3DA2909D; Thu, 28 Jun 2018 02:33:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F0D7228E11 for ; Thu, 28 Jun 2018 02:33:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753187AbeF1CdZ (ORCPT ); Wed, 27 Jun 2018 22:33:25 -0400 Received: from mail-pl0-f68.google.com ([209.85.160.68]:36974 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752917AbeF1CdY (ORCPT ); Wed, 27 Jun 2018 22:33:24 -0400 Received: by mail-pl0-f68.google.com with SMTP id 31-v6so1981733plc.4 for ; Wed, 27 Jun 2018 19:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=5Ei8DfUbEj09xKrPzL9OuN846n3Yz2bUT6zLG6DznuQ=; b=ha83AOvDWC60d7qhTitImB8kHqm52M8oEFIhq4PGUaniUa33OgGdTTwMDVtl/O6nyi fbJ9JvsZlbcSyhQN2TEH/hfJBnORVp527dTWbPNKwKRrJFG1JxMAoRso27AWknaWsnAQ lQ/NPs/8P9VGbPT8/Pb5h9xfHxcGl+xblEbCI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=5Ei8DfUbEj09xKrPzL9OuN846n3Yz2bUT6zLG6DznuQ=; b=NYxgjRqaHwEQNs0Mut37fztEK7W4h2pZydaGDTUlDdCqLhT1xiCJYCHjUV5b8ZO5C/ SrhnzAQRTEQwcE7hyhBhyVw52jmsxM76GZ5gzX/0fXulInfbvdh0PKeFNNZEF7OLTtcK 6hmBLUMFMNPos04yQXJv53Nzh5Yu1kJ4Pa9cNTVuMY5uYbzHLUpojS+8a+i5gaZ5asZb AUvd6vAoNuDW9dWJNL1de06ngO1FDyfimGKEAmn47bb9DYjAcyphnnKm5ruO8EbBBshj Yd/qcaRJt7Ige4OP2ty+w45UaxDBmZn8QDgnJYK3NXXt0OfTrsgTBZYrekfonaIRjs0Z HkXw== X-Gm-Message-State: APt69E0NW16jGxTzNopy4uMBjY1PXtQh+oAu2U67ZVQBQ+nmeL5Xim4T 5jv8EuGec+CHFORNGgYQkL5xFg== X-Google-Smtp-Source: ADUXVKJT0MV+/OGbIJumTfurvbtaYAIO9SRADzmNiJ5kxvC9r/zXVrA+908elIHTFJCgmBkVriV5/A== X-Received: by 2002:a17:902:ac1:: with SMTP id 59-v6mr8370387plp.36.1530153204170; Wed, 27 Jun 2018 19:33:24 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id n9-v6sm10139289pgu.77.2018.06.27.19.33.21 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 27 Jun 2018 19:33:23 -0700 (PDT) From: Baolin Wang To: ohad@wizery.com, bjorn.andersson@linaro.org Cc: broonie@kernel.org, dan.carpenter@oracle.com, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [PATCH] hwspinlock: Fix incorrect return pointers Date: Thu, 28 Jun 2018 10:32:21 +0800 Message-Id: <782fc498b4f4c6e8130d64face93023eb3dc9866.1530152980.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 Sender: linux-remoteproc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The commit 4f1acd758b08 ("hwspinlock: Add devm_xxx() APIs to request/free hwlock") introduces one bug, that will return one error pointer if failed to request one hwlock, but we expect NULL pointer on error for consumers. This patch will fix this issue. Reported-by: Dan Carpenter Signed-off-by: Baolin Wang --- drivers/hwspinlock/hwspinlock_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c index e16d648..2bad40d 100644 --- a/drivers/hwspinlock/hwspinlock_core.c +++ b/drivers/hwspinlock/hwspinlock_core.c @@ -877,10 +877,10 @@ struct hwspinlock *devm_hwspin_lock_request(struct device *dev) ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL); if (!ptr) - return ERR_PTR(-ENOMEM); + return NULL; hwlock = hwspin_lock_request(); - if (!IS_ERR(hwlock)) { + if (hwlock) { *ptr = hwlock; devres_add(dev, ptr); } else { @@ -913,10 +913,10 @@ struct hwspinlock *devm_hwspin_lock_request_specific(struct device *dev, ptr = devres_alloc(devm_hwspin_lock_release, sizeof(*ptr), GFP_KERNEL); if (!ptr) - return ERR_PTR(-ENOMEM); + return NULL; hwlock = hwspin_lock_request_specific(id); - if (!IS_ERR(hwlock)) { + if (hwlock) { *ptr = hwlock; devres_add(dev, ptr); } else {