Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp2547804img; Sun, 24 Mar 2019 11:48:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqz13j7UhndKCuDGDoErv8D9bXvAcgBgPC6aazMHrITmEq1EfeNefOQ7dwfpmFDizX48q3NA X-Received: by 2002:a62:5e46:: with SMTP id s67mr20377262pfb.126.1553453336881; Sun, 24 Mar 2019 11:48:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553453336; cv=none; d=google.com; s=arc-20160816; b=KK/0YXrCPj0yE6rcLF6ebEX2qRvBmHhJedUE+q5E96JNMDfq7U2sos5cIcHxmRH5Oj /60VDZ6MXsdxgUG8XKrZJkG1PDa8F+qZ02Enhx5UrX34+O6bjsnlAjJ+dsJlIL2ldFze q2ErfjhN9f1tJpza/CtEPpWjkFj+NobvO9OoycLlDCz4EQpBQWbEpvpJxfyRMNzeZFuz BPyVX48FQfWSo7oMYMcm6xUo6o52iohS2vUqh8JOxcxzh86TpTI17k2gL7WR2iryPgQ/ 78UQfZQJdJCG8M01zAmP11r4GeYw6h8s1MWijzmQ7OGZRPwV0muXMJWX1hANDm7peSwA E2MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=tQstm92FW3ly5qHmfUez0JTBxcVvSYMnHU9LziNmEiE=; b=gCIykjzwK0cNvPe+Ch2B2e/E0Qk4kX7is12OL3DOduNC5ki+kU9nyWY6gl299vH5iW Q64pYky+naQgb/rV3gnTW8d/ZiMCd3FPimACXZiGI7eCwOHkTsfYSXswJrNM1Bmq7QE/ gTGO3QtNmFKnpKQ/iKPCAHS3uZpu6Mjo/d4EiOX/NBayojIJUZxB7Ttlm/ARfZujRndK PJEB66ro8XSWVQbfRs5CljG5HeiCnv6po2SvJnez3CGUyk1flQK98FF0QhoJ+J0uGZ1Q gPyoexaGM1pYJvAwg44JDRsjS8cer6gcTrKd37CLaxHkSUuqbHYZGJBAvcJAe8cP4s+a qgoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=XZSLpKB8; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w19si11667218ply.264.2019.03.24.11.48.41; Sun, 24 Mar 2019 11:48:56 -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=@gmail.com header.s=20161025 header.b=XZSLpKB8; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728885AbfCXSr6 (ORCPT + 99 others); Sun, 24 Mar 2019 14:47:58 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42532 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726139AbfCXSr6 (ORCPT ); Sun, 24 Mar 2019 14:47:58 -0400 Received: by mail-pf1-f194.google.com with SMTP id r15so4784780pfn.9; Sun, 24 Mar 2019 11:47:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tQstm92FW3ly5qHmfUez0JTBxcVvSYMnHU9LziNmEiE=; b=XZSLpKB8uyDnrBRYZ8jstSzUYtRktCSuLo3fedehK/N/dPHvJ07GlhoG1dY2dc9t63 Xe5v1mbNsa37YHbYo7lxxR3KUOcwcl2gK4N5KJZh3alzmUbPUjZCVMzkv22TepfwvrlF ON5RaVLs5+YIhIo2OpE3b97CsTnyYX4Z/bV2sA5h0iiUbo7A+dksNoidGIarjExtgVT3 Vdoz4eCaEiAQAEY3CVoLgsvfDs64Katm+PdJ9iExSsT4byH6UYGwmqtvPkxcchDNYfM2 ifPT8+UvapT4yFE/6ulyEK85IqD/57LNEpMbxIn39nx2k59UpdOJ3WXOK68eVbCdU8LZ f9NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tQstm92FW3ly5qHmfUez0JTBxcVvSYMnHU9LziNmEiE=; b=oNZ+/Qk6cHDAcyaTu81il/fQpyRcV2kchmIDhUaINHXLsQLRj1RR5WDEXz/bTlzVJd 3/hLs3bicR5pJXh749K7anmkJtDqWHUc53PaVmmOu9fgTcB6K+bNAnhBuUpkVsCHxOml qbsJ9B4egBmkvlZ4ObRr1XRV9XCP8RnRvEqSP1ybMlrF2fqNQyVH2o/hNS+cPjiIj0tf 85uducn5iK6g520pi03SPldP2EYdnb+Qw7jz63IHhm+WLmuVd68AeUkVzD93i2gEcARO m7hgT0yLS0Ehvzjl+/ZiO+JmH+9o9cuX5Or/H6lFmO7yrYwTbheZOGfHuLTIoO053XK8 s30A== X-Gm-Message-State: APjAAAWsejM1cVgOqS8aH04vTe1h2a0ciDGtOItrYj28osUwRlIEuJlZ VBFhVUPcfS1VUh4+bYYjpF0OAcMZtAQkXXbwk+s= X-Received: by 2002:aa7:8c97:: with SMTP id p23mr20512702pfd.229.1553453277002; Sun, 24 Mar 2019 11:47:57 -0700 (PDT) MIME-Version: 1.0 References: <20190324164139.23899-1-pakki001@umn.edu> In-Reply-To: <20190324164139.23899-1-pakki001@umn.edu> From: Andy Shevchenko Date: Sun, 24 Mar 2019 20:47:45 +0200 Message-ID: Subject: Re: [PATCH v4] tty: 8250: fix a missing check for pci_ioremap_bar To: Aditya Pakki Cc: Kangjie Lu , Greg Kroah-Hartman , Jiri Slaby , Andy Shevchenko , Vinod Koul , "open list:SERIAL DRIVERS" , Linux Kernel Mailing List 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 On Sun, Mar 24, 2019 at 6:43 PM Aditya Pakki wrote: > > pci_ioremap_bar could fail. The patch returns in case of failure to > acquire IOMEM. It also releases the acquired resource in the exit path. This is good per se, but I'm so sorry I found another missed place. When DMA ->probe() fails, we have to unmap as well. > > Signed-off-by: Aditya Pakki > > --- > v3: Change the order of pci_iounmap and dw_dma_remove > v2: Failed to release resource in exit path and incorrect code in non > DMA case, suggested by Andy Shevchenko > v1: Missed return by default in CONFIG_SERIAL_8250_DMA, suggested by > Jiri Slaby > --- > drivers/tty/serial/8250/8250_lpss.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/8250/8250_lpss.c b/drivers/tty/serial/8250/8250_lpss.c > index 53ca9ba6ab4b..69d6e32da713 100644 > --- a/drivers/tty/serial/8250/8250_lpss.c > +++ b/drivers/tty/serial/8250/8250_lpss.c > @@ -170,9 +170,11 @@ static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port) > int ret; > > chip->dev = &pdev->dev; > + chip->pdata = &qrk_serial_dma_pdata; > chip->irq = pci_irq_vector(pdev, 0); > chip->regs = pci_ioremap_bar(pdev, 1); > - chip->pdata = &qrk_serial_dma_pdata; > + if (!chip->regs) > + return; > > /* Falling back to PIO mode if DMA probing fails */ > ret = dw_dma_probe(chip); > @@ -199,7 +201,10 @@ static void qrk_serial_exit_dma(struct lpss8250 *lpss) > > if (!param->dma_dev) > return; > + > dw_dma_remove(&lpss->dma_chip); > + > + pci_iounmap(param->dma_dev, &lpss->dma_chip->regs); > } > #else /* CONFIG_SERIAL_8250_DMA */ > static void qrk_serial_setup_dma(struct lpss8250 *lpss, struct uart_port *port) {} > -- > 2.17.1 > -- With Best Regards, Andy Shevchenko