NVMe: Only release requested regions

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 <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@fb.com>

authored by Johannes Thumshirn and committed by Jens Axboe edb50a54 1decabc1

Changed files
+7 -2
drivers
nvme
host
+7 -2
drivers/nvme/host/pci.c
··· 1679 1679 1680 1680 static void nvme_dev_unmap(struct nvme_dev *dev) 1681 1681 { 1682 + struct pci_dev *pdev = to_pci_dev(dev->dev); 1683 + int bars; 1684 + 1682 1685 if (dev->bar) 1683 1686 iounmap(dev->bar); 1684 - pci_release_regions(to_pci_dev(dev->dev)); 1687 + 1688 + bars = pci_select_bars(pdev, IORESOURCE_MEM); 1689 + pci_release_selected_regions(pdev, bars); 1685 1690 } 1686 1691 1687 1692 static void nvme_pci_disable(struct nvme_dev *dev) ··· 1929 1924 1930 1925 return 0; 1931 1926 release: 1932 - pci_release_regions(pdev); 1927 + pci_release_selected_regions(pdev, bars); 1933 1928 return -ENODEV; 1934 1929 } 1935 1930