From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753273AbcKHIYY (ORCPT ); Tue, 8 Nov 2016 03:24:24 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:37770 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752861AbcKHIYW (ORCPT ); Tue, 8 Nov 2016 03:24:22 -0500 DMARC-Filter: OpenDMARC Filter v1.3.1 smtp.codeaurora.org 1539761568 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=pass smtp.mailfrom=rnayak@codeaurora.org From: Rajendra Nayak To: sboyd@codeaurora.org, mturquette@baylibre.com Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Rajendra Nayak Subject: [PATCH] clk: Free struct clk allocated during clk_hw_register() Date: Tue, 8 Nov 2016 13:53:50 +0530 Message-Id: <1478593430-23102-1-git-send-email-rnayak@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With clk_hw_register() API we hide the struct clk from the caller and return an int error code instead, so the caller (clk provider) is not expected to use hw->clk on return. Free the memory, and mark hw->clk as NULL before returning. Signed-off-by: Rajendra Nayak --- drivers/clk/clk.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 0fb39fe..f81e4aa 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2628,7 +2628,15 @@ struct clk *clk_register(struct device *dev, struct clk_hw *hw) */ int clk_hw_register(struct device *dev, struct clk_hw *hw) { - return PTR_ERR_OR_ZERO(clk_register(dev, hw)); + struct clk *c; + + c = clk_register(dev, hw); + if (IS_ERR(c)) + return PTR_ERR(c); + + __clk_free_clk(c); + hw->clk = NULL; + return 0; } EXPORT_SYMBOL_GPL(clk_hw_register); -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation