Received: by 10.192.165.156 with SMTP id m28csp1075436imm; Wed, 11 Apr 2018 11:58:54 -0700 (PDT) X-Google-Smtp-Source: AIpwx49P4WUiGsQnXGsVxpSxusHK2pH7jA7cmObaahkHMVGZ38ala6TWd5I9Vl4tcQcQH2HSFOCx X-Received: by 2002:a17:902:43e4:: with SMTP id j91-v6mr6248515pld.118.1523473134003; Wed, 11 Apr 2018 11:58:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523473133; cv=none; d=google.com; s=arc-20160816; b=DFifICzkDBQ5is/ABUbDA/MZQK5j4a4QHKXqIrHWU5aOteUWa3C0QUnSwDlyHhnsfa lKJ4ct9nSN3jtUZFYA0Pyxn5XM5c9kY21LwdMMwJB1i6dDKC+Ghvrxs/bkWolFGgFL5H SKIlOCQw8BUQph0TYjaoDfJAn0IS13kETi+A98mzDkEGmV9S2M22Lbpfw8uNT8/SHmPf mUMFxqLdROfSeq53A5OEjt0c7N3nsjvbGG/IbzH5Zyzfihq7iEH5yHMbguWUFnj89JP3 hBLp0Pc4NHBo69YoPVaDDapN5gLZgqUWTK+klic/qDrLk9seU5JvQ604Yy/5G/wdABlO rNZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=4TEteSsYx/ocwj0xmadmRuAyz0Njzw14L2gkzyAAiU4=; b=F3+THYNsU/F2YrB/FQI2ZqJxPbL8u84Ch+1qEkaUGennm14tI60PQG6gu7ng/VHweA yt8eC/slDY48QtFJMbhmbndBe+xLuUdf/3h1mcYHYOhWAV3u2PloV/PVwpMId/lJIVZK L3VDWcaxTDuY6vzlP0a2XfAaAJdYRHivZxNpRUjn/XLy7SAe6HFExQlfFppYwhVK3FMg uSbMzvwcOZyqPxOqNBwaSd1mf9gsXK8KNAHAay5of6CUQug3L16VbluLqWLTb01U/2iw 1tiA/iZtRc3B7pS+cbt0PoX6BHY1EWSTfrJqn0dN10zIfZcCf4wP9iV37sbAYCZltAs6 1Ipw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u7-v6si1600322plq.187.2018.04.11.11.58.17; Wed, 11 Apr 2018 11:58:53 -0700 (PDT) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933586AbeDKSys (ORCPT + 99 others); Wed, 11 Apr 2018 14:54:48 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34636 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933556AbeDKSyl (ORCPT ); Wed, 11 Apr 2018 14:54:41 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 0B1AF99F; Wed, 11 Apr 2018 18:54:40 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Rosin , Sasha Levin Subject: [PATCH 4.9 050/310] i2c: mux: reg: put away the parent i2c adapter on probe failure Date: Wed, 11 Apr 2018 20:33:09 +0200 Message-Id: <20180411183624.402591464@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183622.305902791@linuxfoundation.org> References: <20180411183622.305902791@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Peter Rosin [ Upstream commit 68118e0e73aa3a6291c8b9eb1ee708e05f110cea ] It is only prudent to let go of resources that are not used. Fixes: b3fdd32799d8 ("i2c: mux: Add register-based mux i2c-mux-reg") Signed-off-by: Peter Rosin Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/i2c/muxes/i2c-mux-reg.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) --- a/drivers/i2c/muxes/i2c-mux-reg.c +++ b/drivers/i2c/muxes/i2c-mux-reg.c @@ -196,20 +196,25 @@ static int i2c_mux_reg_probe(struct plat res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mux->data.reg_size = resource_size(res); mux->data.reg = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(mux->data.reg)) - return PTR_ERR(mux->data.reg); + if (IS_ERR(mux->data.reg)) { + ret = PTR_ERR(mux->data.reg); + goto err_put_parent; + } } if (mux->data.reg_size != 4 && mux->data.reg_size != 2 && mux->data.reg_size != 1) { dev_err(&pdev->dev, "Invalid register size\n"); - return -EINVAL; + ret = -EINVAL; + goto err_put_parent; } muxc = i2c_mux_alloc(parent, &pdev->dev, mux->data.n_values, 0, 0, i2c_mux_reg_select, NULL); - if (!muxc) - return -ENOMEM; + if (!muxc) { + ret = -ENOMEM; + goto err_put_parent; + } muxc->priv = mux; platform_set_drvdata(pdev, muxc); @@ -235,6 +240,8 @@ static int i2c_mux_reg_probe(struct plat add_adapter_failed: i2c_mux_del_adapters(muxc); +err_put_parent: + i2c_put_adapter(parent); return ret; }