>  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);

This looks fine, but I really hate this API.

Can someone add these two nice helpers to pci.h:

static inline int
pci_request_mem_regions(struct pci_dev *pdev, const char *name)
{
        return pci_request_selected_regions(pdev,
                        pci_select_bars(pdev, IORESOURCE_MEM), name);
}

static inline void
pci_release_mem_regions(struct pci_dev *pdev)
{
        return pci_release_selected_regions(pdev,
                        pci_select_bars(pdev, IORESOURCE_MEM));
}

But for now this should do it:

Reviewed-by: Christoph Hellwig <h...@lst.de>

Reply via email to