Re: [PATCH 4/9] block: mtip32xx: Replace deprecated PCI functions

Philipp Stanner
2024-08-20T07:22:07Z

On Mon, 2024-08-19 at 18:51 +0200, Philipp Stanner wrote:
> pcim_iomap_regions() and pcim_iomap_table() have been deprecated by
> the
> PCI subsystem in commit e354bb84a4c1 ("PCI: Deprecate
> pcim_iomap_table(), pcim_iomap_regions_request_all()").
>
> In mtip32xx, these functions can easily be replaced by their
> respective
> successors, pcim_request_region() and pcim_iomap(). Moreover, the
> driver's call to pcim_iounmap_regions() is not necessary, because
> it's
> invoked in the remove() function. Cleanup can, hence, be performed by
> PCI devres automatically.
>
> Replace pcim_iomap_regions() and pcim_iomap_table().
>
> Remove the call to pcim_iounmap_regions().
>
> Signed-off-by: Philipp Stanner <pstanner@redhat.com>
> ---
>  drivers/block/mtip32xx/mtip32xx.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/block/mtip32xx/mtip32xx.c
> b/drivers/block/mtip32xx/mtip32xx.c
> index c6ef0546ffc9..c7da6090954e 100644
> --- a/drivers/block/mtip32xx/mtip32xx.c
> +++ b/drivers/block/mtip32xx/mtip32xx.c
> @@ -2716,7 +2716,9 @@ static int mtip_hw_init(struct driver_data *dd)
>   int rv;
>   unsigned long timeout, timetaken;
>
> - dd->mmio = pcim_iomap_table(dd->pdev)[MTIP_ABAR];
> + dd->mmio = pcim_iomap(dd->pdev, MTIP_ABAR, 0);
> + if (!dd->mmio)
> + return -ENOMEM;
>
>   mtip_detect_product(dd);
>   if (dd->product_type == MTIP_PRODUCT_UNKNOWN) {
> @@ -3726,9 +3728,9 @@ static int mtip_pci_probe(struct pci_dev *pdev,
>   }
>
>   /* Map BAR5 to memory. */
> - rv = pcim_iomap_regions(pdev, 1 << MTIP_ABAR,
> MTIP_DRV_NAME);
> + rv = pcim_request_region(pdev, 1, MTIP_DRV_NAME);

That's a bug here, btw.
Should be MTIP_ABAR instead of 1.

Will fix in v2.

P.

>   if (rv < 0) {
> - dev_err(&pdev->dev, "Unable to map regions\n");
> + dev_err(&pdev->dev, "Unable to request regions\n");
>   goto iomap_err;
>   }
>
> @@ -3849,7 +3851,7 @@ static int mtip_pci_probe(struct pci_dev *pdev,
>   drop_cpu(dd->work[2].cpu_binding);
>   }
>  setmask_err:
> - pcim_iounmap_regions(pdev, 1 << MTIP_ABAR);
> + pcim_release_region(pdev, MTIP_ABAR);
>
>  iomap_err:
>   kfree(dd);
> @@ -3925,7 +3927,6 @@ static void mtip_pci_remove(struct pci_dev
> *pdev)
>
>   pci_disable_msi(pdev);
>
> - pcim_iounmap_regions(pdev, 1 << MTIP_ABAR);
>   pci_set_drvdata(pdev, NULL);
>
>   put_disk(dd->disk);