Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1809455imu; Wed, 21 Nov 2018 02:14:23 -0800 (PST) X-Google-Smtp-Source: AFSGD/VQxt7a5yoE+UkA+dqJsd7gGNsY475/7S+7jYA28T8HXyFvmp7gElxGw1Ihvwl4TlKLVi6+ X-Received: by 2002:a63:b54f:: with SMTP id u15mr5368117pgo.420.1542795263615; Wed, 21 Nov 2018 02:14:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542795263; cv=none; d=google.com; s=arc-20160816; b=b/HSdnZmX+KFQDq2BbYPaXlPfaJJbNxKvZ7TytmfC47bCmCcAy4jN6SKiGLS8KixPA +dd7jgC3BFzwj/LGtCvafHubT1COl3/A7jdptcY2D85uY49kSERUkFNM5/vK4XsiUBVy yBUA0UNGVO6KvmB5yvjdlh/8p0elLMHP90QtVNSHbXkcQD2G0GsYoMHqtT2VVjlJZEli aZgiQS+OS55pEiLSKTWlbNQAR+/4IEcZsa+1vKnZPpVYEiYcEZTXgv/RGdoe3jHGB090 r7O/aFYNvuiyjm4fBeQHUpwKDW2AuOcnwOFRYSa0EzcH1CTYUrms1mmBfyInCZrTiPWj 10lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=5ayA2KhHMzLeXKKms8imf64yYt5xO/HURo8c94alekE=; b=HIFxLS1w72wn3vxoNb65tBOqomjl6jzM0c9kAUcrr7BRXc2InsqMJoUJ8gs7LuznTH X0+Ate/ShAndfPVKx7dEH6pMT6YM/U6wi5LYW4cElOnpNFCn0fEEneUoLgCteGD2OVDY dbrxBNY+fFh8nXmCCjLrEQ0ilhNfRVScpVB0hna3oYmkUrenybS/rgZFUXfRzDv4Efpm m2VJGLixbEjnOUpb/NbG1r4nMcaidU+Gsf28HGr2w85j9xzzVgYqWRt916kFZa3Oy6X7 H+5jA+xWThTZEigd1HtBwF5utCaS5KV3kA+TsXzdRYEu9XRAM+g+FaL0e5uw3wAziYlv 1f+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cirrus.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j21si28667785pll.150.2018.11.21.02.14.08; Wed, 21 Nov 2018 02:14:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cirrus.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728085AbeKUUrN (ORCPT + 99 others); Wed, 21 Nov 2018 15:47:13 -0500 Received: from mx0a-001ae601.pphosted.com ([67.231.149.25]:37048 "EHLO mx0b-001ae601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726016AbeKUUrN (ORCPT ); Wed, 21 Nov 2018 15:47:13 -0500 Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wALA9eXa004613; Wed, 21 Nov 2018 04:13:19 -0600 Authentication-Results: ppops.net; spf=none smtp.mailfrom=ckeepax@opensource.cirrus.com Received: from mail4.cirrus.com ([87.246.98.35]) by mx0a-001ae601.pphosted.com with ESMTP id 2nth986mfx-1; Wed, 21 Nov 2018 04:13:18 -0600 Received: from EX17.ad.cirrus.com (unknown [172.20.9.81]) by mail4.cirrus.com (Postfix) with ESMTP id 99D9A611C8BB; Wed, 21 Nov 2018 04:16:41 -0600 (CST) Received: from imbe.wolfsonmicro.main (198.61.95.81) by EX17.ad.cirrus.com (172.20.9.81) with Microsoft SMTP Server id 14.3.408.0; Wed, 21 Nov 2018 10:13:17 +0000 Received: from algalon.ad.cirrus.com (algalon.ad.cirrus.com [198.90.251.122]) by imbe.wolfsonmicro.main (8.14.4/8.14.4) with ESMTP id wALADGkx014959; Wed, 21 Nov 2018 10:13:16 GMT From: Charles Keepax To: CC: , , , , Subject: [PATCH v2] regulator: wm8994: Don't use devres for enable GPIOs Date: Wed, 21 Nov 2018 10:13:16 +0000 Message-ID: <20181121101316.32194-1-ckeepax@opensource.cirrus.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=3 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=861 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1811210093 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The regulator core takes over managing the lifetime of the enable GPIO once the regulator is registered. As such we shouldn't register the enable GPIO using devm, or it will be freed twice. Reported-by: Marek Szyprowski Signed-off-by: Charles Keepax --- Again only build tested. Thanks, Charles drivers/regulator/wm8994-regulator.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/regulator/wm8994-regulator.c b/drivers/regulator/wm8994-regulator.c index d7fec533c4032..46e6b4ee1491a 100644 --- a/drivers/regulator/wm8994-regulator.c +++ b/drivers/regulator/wm8994-regulator.c @@ -147,11 +147,14 @@ static int wm8994_ldo_probe(struct platform_device *pdev) config.regmap = wm8994->regmap; config.init_data = &ldo->init_data; - /* Look up LDO enable GPIO from the parent device node */ - gpiod = devm_gpiod_get_optional(pdev->dev.parent, - id ? "wlf,ldo2ena" : "wlf,ldo1ena", - GPIOD_OUT_LOW | - GPIOD_FLAGS_BIT_NONEXCLUSIVE); + /* + * Look up LDO enable GPIO from the parent device node, we don't + * use devm because the regulator core will free the GPIO + */ + gpiod = gpiod_get_optional(pdev->dev.parent, + id ? "wlf,ldo2ena" : "wlf,ldo1ena", + GPIOD_OUT_LOW | + GPIOD_FLAGS_BIT_NONEXCLUSIVE); if (IS_ERR(gpiod)) return PTR_ERR(gpiod); config.ena_gpiod = gpiod; @@ -184,6 +187,7 @@ static int wm8994_ldo_probe(struct platform_device *pdev) return 0; err: + gpiod_put(gpiod); return ret; } -- 2.11.0