Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2222243imm; Mon, 28 May 2018 04:14:15 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqGWzwEkq5AifWDUhrFfxrVkLF+4x0tniz97BmhOPgTuW4NkGIHyTmnMS3UwTGwRYODbeoi X-Received: by 2002:a17:902:6046:: with SMTP id a6-v6mr13148163plt.59.1527506055681; Mon, 28 May 2018 04:14:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527506055; cv=none; d=google.com; s=arc-20160816; b=szVwmrOKRZ1ol4AUrsySThSfrrVHSXY0CtdR0ygTWvQftcMcKJZY763QebzRn7BSX7 zqeaegF7O4XVWnMVHBrBgunlSqJnv0rAiisXvqIutMsvEJQ5N+rDLFFhteJxZdRicV4l HKvbeiJuLCUq6JKgnVTJnE/jMFEWC/8iFNjNPcxf8Z+RF4kJxrqDWSCbC0v7Qpj0QALz gXj5Zi1ce8Ay6dG7idbJGBqIuC2QCn8fOI+LoZ56pBDCBrguv9f3hXUj9RKfTvoQUEIl t7Jqbe5Pk1o9uoeEssiE650bB4kDqYCQy1T6jN2KCN4CYAuSnejCt1btifEWz34JGW5v H0bQ== 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:dkim-signature :arc-authentication-results; bh=wspwP0WVphH3iR8Uilv+ibohTo0uJ+opjqPMtwB0E8k=; b=cu+knASL65w8VqDO3yP5hRv6VNWdUQ/SjXt69U5ghAwt+UjPEkhNTeFFWMKmn7YJBX gput1egqomx1BAuOKteVcKhPpdDkYiLJtTF16QuTnS+Bp5rVktj59iZkwLp74DsUzUAL 98ozo5aG3rsZC6HZKGp/KZHO4s72P9JX8GL/Vcg+Db1soX3fROiZxOB1YzMvX9aTC+N5 TwWlPV9NwPM2uzQuMONJ9z6r8gzSV7G6SlDGG2GSKsL8UtgoKbuPEqUJr1HxlzZk8rN9 kgxITis1GMui8OgdAdafRSHs5UtCZ1+uJ1w123AQfJjW2pPTX7+5UKOxkMZ8/Oiefwoz +5+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2KmS/8FZ; 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 f9-v6si14359417pgn.334.2018.05.28.04.14.01; Mon, 28 May 2018 04:14:15 -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; dkim=pass header.i=@kernel.org header.s=default header.b=2KmS/8FZ; 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 S937627AbeE1LMA (ORCPT + 99 others); Mon, 28 May 2018 07:12:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:59806 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1424132AbeE1LLz (ORCPT ); Mon, 28 May 2018 07:11:55 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EAA0D208A3; Mon, 28 May 2018 11:11:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505915; bh=pyMuQADFjyGcQQtlnIa+uyd3VIsBEe4oIZSVzHf9G4w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2KmS/8FZi8/A0mc9UFK+lK8o9Pdndo2ddV4GiQuFEVUv7NhfxGlMwuaiW6rTbhpbx d619+keA/1Qr9x+TsVmRqg3gTSqJXMNYUI8RmHPobVWThrYps1KgVLO2wgxftN6x9z EZjc8MgZ3/FGFlUWdxJSXKWwuhUrIQdhiGqERnLk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Christophe JAILLET , Neil Armstrong , Sasha Levin Subject: [PATCH 4.16 174/272] drm/meson: Fix some error handling paths in meson_drv_bind_master() Date: Mon, 28 May 2018 12:03:27 +0200 Message-Id: <20180528100255.372503381@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100240.256525891@linuxfoundation.org> References: <20180528100240.256525891@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.16-stable review patch. If anyone has any objections, please let me know. ------------------ From: Christophe JAILLET [ Upstream commit 2c18107b9d58972588cd45d89b8f58d0f033c110 ] If one of these functions fail, we whould free 'drm', as alreadry done in the other error handling paths, below and above. Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") Signed-off-by: Christophe JAILLET Acked-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/df47e03d36c2cf7bc37ec3105fc47c16555bd946.1520885192.git.christophe.jaillet@wanadoo.fr Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/meson/meson_drv.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) --- a/drivers/gpu/drm/meson/meson_drv.c +++ b/drivers/gpu/drm/meson/meson_drv.c @@ -189,35 +189,43 @@ static int meson_drv_bind_master(struct res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "vpu"); regs = devm_ioremap_resource(dev, res); - if (IS_ERR(regs)) - return PTR_ERR(regs); + if (IS_ERR(regs)) { + ret = PTR_ERR(regs); + goto free_drm; + } priv->io_base = regs; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hhi"); /* Simply ioremap since it may be a shared register zone */ regs = devm_ioremap(dev, res->start, resource_size(res)); - if (!regs) - return -EADDRNOTAVAIL; + if (!regs) { + ret = -EADDRNOTAVAIL; + goto free_drm; + } priv->hhi = devm_regmap_init_mmio(dev, regs, &meson_regmap_config); if (IS_ERR(priv->hhi)) { dev_err(&pdev->dev, "Couldn't create the HHI regmap\n"); - return PTR_ERR(priv->hhi); + ret = PTR_ERR(priv->hhi); + goto free_drm; } res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dmc"); /* Simply ioremap since it may be a shared register zone */ regs = devm_ioremap(dev, res->start, resource_size(res)); - if (!regs) - return -EADDRNOTAVAIL; + if (!regs) { + ret = -EADDRNOTAVAIL; + goto free_drm; + } priv->dmc = devm_regmap_init_mmio(dev, regs, &meson_regmap_config); if (IS_ERR(priv->dmc)) { dev_err(&pdev->dev, "Couldn't create the DMC regmap\n"); - return PTR_ERR(priv->dmc); + ret = PTR_ERR(priv->dmc); + goto free_drm; } priv->vsync_irq = platform_get_irq(pdev, 0);