From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161190AbcFHHQc (ORCPT ); Wed, 8 Jun 2016 03:16:32 -0400 Received: from mx2.suse.de ([195.135.220.15]:33099 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752321AbcFHHQb (ORCPT ); Wed, 8 Jun 2016 03:16:31 -0400 Date: Wed, 8 Jun 2016 09:16:29 +0200 From: Johannes Thumshirn To: Jens Axboe Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] NVMe: Only release requested regions Message-ID: <20160608071629.y2ysgc5lsvv2c6nu@c203.arch.suse.de> References: <1462886068-14605-1-git-send-email-jthumshirn@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1462886068-14605-1-git-send-email-jthumshirn@suse.de> User-Agent: Mutt/1.6.1-neo () Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 10, 2016 at 03:14:28PM +0200, Johannes Thumshirn wrote: > The NVMe driver only requests the PCIe device's memory regions but releases > all possible regions (including eventual I/O regions). This leads to a stale > warning entry in dmesg about freeing non existent resources. > > Signed-off-by: Johannes Thumshirn > --- > drivers/nvme/host/pci.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c > index eec73fe..6f5ad07 100644 > --- a/drivers/nvme/host/pci.c > +++ b/drivers/nvme/host/pci.c > @@ -1759,9 +1759,14 @@ static int nvme_pci_enable(struct nvme_dev *dev) > > static void nvme_dev_unmap(struct nvme_dev *dev) > { > + struct pci_dev *pdev = to_pci_dev(dev->dev); > + int bars; > + > if (dev->bar) > iounmap(dev->bar); > - pci_release_regions(to_pci_dev(dev->dev)); > + > + bars = pci_select_bars(pdev, IORESOURCE_MEM); > + pci_release_selected_regions(pdev, bars); > } > > static void nvme_pci_disable(struct nvme_dev *dev) > @@ -1998,7 +2003,7 @@ static int nvme_dev_map(struct nvme_dev *dev) > > return 0; > release: > - pci_release_regions(pdev); > + pci_release_selected_regions(pdev, bars); > return -ENODEV; > } > > -- > 1.8.5.6 > Jens, ping? -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850