Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1675050ybh; Tue, 14 Jul 2020 04:30:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEb1MenSmqAv/G+vHO/r5ohaLjMxbU/CUkV33ydcm6sj8br/uGBBJAkNjLNhMGTgVEyTas X-Received: by 2002:a17:906:8688:: with SMTP id g8mr3902223ejx.505.1594726202788; Tue, 14 Jul 2020 04:30:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594726202; cv=none; d=google.com; s=arc-20160816; b=bmSwfGdF+/uzvwZrJxsyeDXgkRj7jOyWaQvcFk25S/a92Skw0j6APobsDBNg8A9Fdq Rxeo+QiQv+BnKgrNV7umpDelSmXbbtt5Bhhf5Uv+CY/ueuvNx7D0CApvOmBvUKvDnpsr S0Y1jlXYE6z+lPHhyfuEMElQwvgPor/UoebMdU8vxvTZGIv9/S0KvSbr0fBiBcsY7MJN tEpu44J6IZA2iEb15fGF/35jXkBo0hrR3lZlU7XHsy22UmLthGy3MpyjKBz6QY6yjyIb GWrp49TnY1rHSoXVfWhdrESEHr4t3fjxYjob6BaqZZ1MDJ64D6kn2wNUGXyX4LcuApQW +g3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=xph+e5Wgs29Mq4JQTkkGF6Lc0G5UFxbS0Ft+cUAArB8=; b=Seq69aZUCvoUjYH+i37n7xaykmHnN8SQMlDgwtBQM9V4bK/0FZKSLYCWvBHjVwI64G 9QRQZotuN8QqQ6Tjgc646nixK6aFZVeg/tpDONT3/QNg0DMbQS1mrWIgbfFEeOBVCyao 4A67IEqzS7v94vMB4xNR127zwQwoy2SydnILBeQzCrbYZRre8mOK2qB2cWsRyb8mAua6 ODJ3oGMtajKP49rRYB3L0g0fx4qQuOaPdgoy5PAH+pXV2776zndJtWRpXxNxRNNmnI4h 0PRvkWb8eX9h7X/0t1s1yx04qM3hjpdPQ3R5wOtQWu+r7RWk57kubXzR/VkrEK/EfheR ngRg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cn1si10778371edb.354.2020.07.14.04.29.39; Tue, 14 Jul 2020 04:30:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727119AbgGNL3Q (ORCPT + 99 others); Tue, 14 Jul 2020 07:29:16 -0400 Received: from mail-ej1-f65.google.com ([209.85.218.65]:39646 "EHLO mail-ej1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726252AbgGNL3Q (ORCPT ); Tue, 14 Jul 2020 07:29:16 -0400 Received: by mail-ej1-f65.google.com with SMTP id w6so21197230ejq.6; Tue, 14 Jul 2020 04:29:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=xph+e5Wgs29Mq4JQTkkGF6Lc0G5UFxbS0Ft+cUAArB8=; b=KW41Zn1LLDT/ZWUkqopfJs5YDzrW29uA6olpaRxRvvqk2gjNUK/pwXOG/heOFygG9l mjPFyU10V2dcWuK2kKnsUFohaaVo9Hv76zQUe3GdJA1XuX/B6W9B3gx/TTlsuN6wBC4T aJT3i0/ZYgsbUjCeZjGCQBPRxJ/hp0WJe/PdtaWspFdAUpHThW1IJpju+4IexIlqCzwX 3aS7PP8QGnYd5N99ksyu9Uu+RVu7sBcqP7Lzrg8axam/i6VA9/6exEuz9hLbw457wNwv e+LjuObJ/5nKZZq/tLBN2jgprJvhp4zVf1bYfz9PQXjGvMBMojONhBoCwejcqaYLOHpE xIyQ== X-Gm-Message-State: AOAM5333qQCGvItrC9o2szYbNwTg/S/Guyw8WSqC+upnM2+kJT/1rryS m2ycw70PkdLSSJUs3/fhJ98/N6rW X-Received: by 2002:a17:906:375a:: with SMTP id e26mr4208219ejc.324.1594726153373; Tue, 14 Jul 2020 04:29:13 -0700 (PDT) Received: from ?IPv6:2a0b:e7c0:0:107::49? ([2a0b:e7c0:0:107::49]) by smtp.gmail.com with ESMTPSA id cq7sm14345902edb.66.2020.07.14.04.29.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Jul 2020 04:29:12 -0700 (PDT) Subject: Re: [PATCH v2] serial: mxs-auart: add missed iounmap() in probe failure and remove To: Chuhong Yuan Cc: Greg Kroah-Hartman , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20200709135608.68290-1-hslester96@gmail.com> From: Jiri Slaby Message-ID: <8fcb4cd4-3a3a-5240-bce4-ef740a243856@kernel.org> Date: Tue, 14 Jul 2020 13:29:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200709135608.68290-1-hslester96@gmail.com> Content-Type: text/plain; charset=iso-8859-2 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09. 07. 20, 15:56, Chuhong Yuan wrote: > This driver calls ioremap() in probe, but it misses calling iounmap() in > probe's error handler and remove. > Add the missed calls to fix it. > > Fixes: 47d37d6f94cc ("serial: Add auart driver for i.MX23/28") > Signed-off-by: Chuhong Yuan > --- > Changes in v2: > - Use iounmap() instead of devm_ioremap() to fix the bugs. Out of curiosity, what was wrong with devm_ioremap? I seem I cannot find the reason... > - Modify the subject and the description. > > drivers/tty/serial/mxs-auart.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c > index b4f835e7de23..b784323a6a7b 100644 > --- a/drivers/tty/serial/mxs-auart.c > +++ b/drivers/tty/serial/mxs-auart.c > @@ -1698,21 +1698,21 @@ static int mxs_auart_probe(struct platform_device *pdev) > irq = platform_get_irq(pdev, 0); > if (irq < 0) { > ret = irq; > - goto out_disable_clks; > + goto out_iounmap; > } > > s->port.irq = irq; > ret = devm_request_irq(&pdev->dev, irq, mxs_auart_irq_handle, 0, > dev_name(&pdev->dev), s); > if (ret) > - goto out_disable_clks; > + goto out_iounmap; > > platform_set_drvdata(pdev, s); > > ret = mxs_auart_init_gpios(s, &pdev->dev); > if (ret) { > dev_err(&pdev->dev, "Failed to initialize GPIOs.\n"); > - goto out_disable_clks; > + goto out_iounmap; > } > > /* > @@ -1720,7 +1720,7 @@ static int mxs_auart_probe(struct platform_device *pdev) > */ > ret = mxs_auart_request_gpio_irq(s); > if (ret) > - goto out_disable_clks; > + goto out_iounmap; > > auart_port[s->port.line] = s; > > @@ -1746,6 +1746,9 @@ static int mxs_auart_probe(struct platform_device *pdev) > mxs_auart_free_gpio_irq(s); > auart_port[pdev->id] = NULL; > > +out_iounmap: > + iounmap(s->port.membase); > + > out_disable_clks: > if (is_asm9260_auart(s)) { > clk_disable_unprepare(s->clk); > @@ -1761,6 +1764,7 @@ static int mxs_auart_remove(struct platform_device *pdev) > uart_remove_one_port(&auart_driver, &s->port); > auart_port[pdev->id] = NULL; > mxs_auart_free_gpio_irq(s); > + iounmap(s->port.membase); > if (is_asm9260_auart(s)) { > clk_disable_unprepare(s->clk); > clk_disable_unprepare(s->clk_ahb); > -- js suse labs