Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp4113561img; Tue, 26 Mar 2019 03:18:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqwmiuq+SqQTA5zPeK1LY9x6RdCPdNjONojg6WYYl5CuHXb4qIMRtELOE3ik45wiGPlQ0UhP X-Received: by 2002:a62:174c:: with SMTP id 73mr28967827pfx.33.1553595537618; Tue, 26 Mar 2019 03:18:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553595537; cv=none; d=google.com; s=arc-20160816; b=wsm1m2X7dmj47LtBwnTxhqCXWpq8mzBvBzPC/wvDHQ6gWkrU21GBVIFIiRhn/J/0Aq dIk3HaKcR+Ef7dIznfMoMWmK6eKPkhOhYMwFqOUFkRB+Br23Nj2GxynBiGvM/Pjjs0vx hLMwYJAeru2Q9nYphJkTb4+s7OFRxJnAPFMnPYDwxHhfs0IbwMnv5GivvOXo156yYrFF D6PIJ17Yt65WEj7/7Nu1GlaEpkgZts/1zS+9SEvwTIMMk4O2ro1eBJY9Vs5kuFQouwVc IasNHaLFgaHUPGXP3yw2Zrn6tdY3/G9D+W8yOteNZyJzzgo7S5QtJBSmFk3eg0I2III6 0gYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=S1RKE2P/UtIGDOURZeUmS9bHDF11GojjqJUoobGgRFw=; b=Zj9nRU+ua5Jzyl3/GcHtiNSlKXDCSAmZ4vrir6rGDsBULIKMaly7ZPLzOaDPpZONyD U7HsbB/9Qd0tzfHYCZm0o3VOEgY6UIrg3X37bpc3qV1/mOJ4ZJkbx2u526uG+WSsmWLk JKpMS6gkWQXCrO6MNiXIXLiRec2oWsx7OhmXy37sWKV/TpHzi7vSagaoz9hcRUPUWByV CRcc7Gk9Bp7OHBotj9L1bm31sUQjjXo4lSZAj4fRit2DAFH/hT1a1lRk0euHu0+CufIr J2wl0xrb4Owo44btcXZPRuuFKYXkDZpDInDy5d7GXdcS7oIv5Dy2WnZ1kH9k/u+SLnuj sdFQ== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 9si16990986plc.121.2019.03.26.03.18.42; Tue, 26 Mar 2019 03:18:57 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731412AbfCZKSB (ORCPT + 99 others); Tue, 26 Mar 2019 06:18:01 -0400 Received: from mga05.intel.com ([192.55.52.43]:27400 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726042AbfCZKSB (ORCPT ); Tue, 26 Mar 2019 06:18:01 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2019 03:18:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,271,1549958400"; d="scan'208";a="143906223" Received: from smile.fi.intel.com (HELO smile) ([10.237.72.86]) by FMSMGA003.fm.intel.com with ESMTP; 26 Mar 2019 03:17:59 -0700 Received: from andy by smile with local (Exim 4.92) (envelope-from ) id 1h8j9a-0001DU-8i; Tue, 26 Mar 2019 12:17:58 +0200 Date: Tue, 26 Mar 2019 12:17:58 +0200 From: Andy Shevchenko To: Aditya Pakki Cc: kjlu@umn.edu, Greg Kroah-Hartman , Jiri Slaby , Vinod Koul , linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] tty: 8250: fix a missing check for pci_ioremap_bar Message-ID: <20190326101758.GV9224@smile.fi.intel.com> References: <20190325222147.13342-1-pakki001@umn.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190325222147.13342-1-pakki001@umn.edu> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 25, 2019 at 05:21:46PM -0500, 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. Thanks for an update. One comment below. After addressing it, take mine Reviewed-by: Andy Shevchenko > > Signed-off-by: Aditya Pakki > > --- > v5: change pci_iounmap to iounmap to pass kbuild errors in other arch > v4: Missed resource release in dma_probe failure. > 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 | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_lpss.c b/drivers/tty/serial/8250/8250_lpss.c > index 53ca9ba6ab4b..c7c7bf5d7e5e 100644 > --- a/drivers/tty/serial/8250/8250_lpss.c > +++ b/drivers/tty/serial/8250/8250_lpss.c > @@ -170,14 +170,18 @@ 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); > - if (ret) > + if (ret) { > + iounmap(chip->regs); > return; > + } > > pci_try_set_mwi(pdev); > > @@ -199,7 +203,10 @@ static void qrk_serial_exit_dma(struct lpss8250 *lpss) > > if (!param->dma_dev) > return; > + > dw_dma_remove(&lpss->dma_chip); > + > + iounmap(&lpss->dma_chip->regs); This is a bit fragile form of writing. Perhaps struct dw_dma_chip *chip = &lpss->dma_chip; ... dw_dma_remove(chip); iounmap(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