[PATCH v2] drivers: pci: Directly use ida_alloc()/free()

Ke Liu posted 1 patch 3 years, 11 months ago
drivers/pci/controller/vmd.c   | 6 +++---
drivers/pci/switch/switchtec.c | 7 +++----
2 files changed, 6 insertions(+), 7 deletions(-)
[PATCH v2] drivers: pci: Directly use ida_alloc()/free()
Posted by Ke Liu 3 years, 11 months ago
Use ida_alloc()/ida_free() instead of deprecated
ida_simple_get()/ida_simple_remove().

Signed-off-by: Ke Liu <liuke94@huawei.com>
---
v2	fix sign-off name suggest by Bjorn Helgaas
---
 drivers/pci/controller/vmd.c   | 6 +++---
 drivers/pci/switch/switchtec.c | 7 +++----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index 94a14a3d7e55..49c72c2d8fe7 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -894,7 +894,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
 		return -ENOMEM;
 
 	vmd->dev = dev;
-	vmd->instance = ida_simple_get(&vmd_instance_ida, 0, 0, GFP_KERNEL);
+	vmd->instance = ida_alloc(&vmd_instance_ida, GFP_KERNEL);
 	if (vmd->instance < 0)
 		return vmd->instance;
 
@@ -935,7 +935,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	return 0;
 
  out_release_instance:
-	ida_simple_remove(&vmd_instance_ida, vmd->instance);
+	ida_free(&vmd_instance_ida, vmd->instance);
 	kfree(vmd->name);
 	return err;
 }
@@ -958,7 +958,7 @@ static void vmd_remove(struct pci_dev *dev)
 	vmd_cleanup_srcu(vmd);
 	vmd_detach_resources(vmd);
 	vmd_remove_irq_domain(vmd);
-	ida_simple_remove(&vmd_instance_ida, vmd->instance);
+	ida_free(&vmd_instance_ida, vmd->instance);
 	kfree(vmd->name);
 }
 
diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
index c36c1238c604..75be4fe22509 100644
--- a/drivers/pci/switch/switchtec.c
+++ b/drivers/pci/switch/switchtec.c
@@ -1376,8 +1376,7 @@ static struct switchtec_dev *stdev_create(struct pci_dev *pdev)
 	dev->groups = switchtec_device_groups;
 	dev->release = stdev_release;
 
-	minor = ida_simple_get(&switchtec_minor_ida, 0, 0,
-			       GFP_KERNEL);
+	minor = ida_alloc(&switchtec_minor_ida, GFP_KERNEL);
 	if (minor < 0) {
 		rc = minor;
 		goto err_put;
@@ -1692,7 +1691,7 @@ static int switchtec_pci_probe(struct pci_dev *pdev,
 err_devadd:
 	stdev_kill(stdev);
 err_put:
-	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
+	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
 	put_device(&stdev->dev);
 	return rc;
 }
@@ -1704,7 +1703,7 @@ static void switchtec_pci_remove(struct pci_dev *pdev)
 	pci_set_drvdata(pdev, NULL);
 
 	cdev_device_del(&stdev->cdev, &stdev->dev);
-	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
+	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
 	dev_info(&stdev->dev, "unregistered.\n");
 	stdev_kill(stdev);
 	put_device(&stdev->dev);
-- 
2.25.1
Re: [PATCH v2] drivers: pci: Directly use ida_alloc()/free()
Posted by Bjorn Helgaas 3 years, 10 months ago
On Thu, Jun 02, 2022 at 07:11:15AM +0000, Ke Liu wrote:
> Use ida_alloc()/ida_free() instead of deprecated
> ida_simple_get()/ida_simple_remove().
> 
> Signed-off-by: Ke Liu <liuke94@huawei.com>

I split the switchtec part off and applied it with Logan's ack to
pci/ctrl/switchtec for v5.20, thanks!

  PCI: switchtec: Prefer ida_alloc()/free() over ida_simple_get()/remove()

I'll apply the vmd part as soon as one of those folks pipes up.

> ---
> v2	fix sign-off name suggest by Bjorn Helgaas
> ---
>  drivers/pci/controller/vmd.c   | 6 +++---
>  drivers/pci/switch/switchtec.c | 7 +++----
>  2 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
> index 94a14a3d7e55..49c72c2d8fe7 100644
> --- a/drivers/pci/controller/vmd.c
> +++ b/drivers/pci/controller/vmd.c
> @@ -894,7 +894,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  		return -ENOMEM;
>  
>  	vmd->dev = dev;
> -	vmd->instance = ida_simple_get(&vmd_instance_ida, 0, 0, GFP_KERNEL);
> +	vmd->instance = ida_alloc(&vmd_instance_ida, GFP_KERNEL);
>  	if (vmd->instance < 0)
>  		return vmd->instance;
>  
> @@ -935,7 +935,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  	return 0;
>  
>   out_release_instance:
> -	ida_simple_remove(&vmd_instance_ida, vmd->instance);
> +	ida_free(&vmd_instance_ida, vmd->instance);
>  	kfree(vmd->name);
>  	return err;
>  }
> @@ -958,7 +958,7 @@ static void vmd_remove(struct pci_dev *dev)
>  	vmd_cleanup_srcu(vmd);
>  	vmd_detach_resources(vmd);
>  	vmd_remove_irq_domain(vmd);
> -	ida_simple_remove(&vmd_instance_ida, vmd->instance);
> +	ida_free(&vmd_instance_ida, vmd->instance);
>  	kfree(vmd->name);
>  }
>  
> diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
> index c36c1238c604..75be4fe22509 100644
> --- a/drivers/pci/switch/switchtec.c
> +++ b/drivers/pci/switch/switchtec.c
> @@ -1376,8 +1376,7 @@ static struct switchtec_dev *stdev_create(struct pci_dev *pdev)
>  	dev->groups = switchtec_device_groups;
>  	dev->release = stdev_release;
>  
> -	minor = ida_simple_get(&switchtec_minor_ida, 0, 0,
> -			       GFP_KERNEL);
> +	minor = ida_alloc(&switchtec_minor_ida, GFP_KERNEL);
>  	if (minor < 0) {
>  		rc = minor;
>  		goto err_put;
> @@ -1692,7 +1691,7 @@ static int switchtec_pci_probe(struct pci_dev *pdev,
>  err_devadd:
>  	stdev_kill(stdev);
>  err_put:
> -	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
> +	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
>  	put_device(&stdev->dev);
>  	return rc;
>  }
> @@ -1704,7 +1703,7 @@ static void switchtec_pci_remove(struct pci_dev *pdev)
>  	pci_set_drvdata(pdev, NULL);
>  
>  	cdev_device_del(&stdev->cdev, &stdev->dev);
> -	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
> +	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
>  	dev_info(&stdev->dev, "unregistered.\n");
>  	stdev_kill(stdev);
>  	put_device(&stdev->dev);
> -- 
> 2.25.1
>
Re: [PATCH v2] drivers: pci: Directly use ida_alloc()/free()
Posted by Bjorn Helgaas 3 years, 10 months ago
On Thu, Jun 02, 2022 at 07:11:15AM +0000, Ke Liu wrote:
> Use ida_alloc()/ida_free() instead of deprecated
> ida_simple_get()/ida_simple_remove().
> 
> Signed-off-by: Ke Liu <liuke94@huawei.com>

I'd like acks from a vmd maintainer (Nirmal) and a switchtec
maintainer (Kirt, Logan) before applying this.

You don't need to post this again with those acks, but if you do post
it again for some reason, take note of the subject line history; see
"git log --oneline drivers/pci/controller/ drivers/pci/switch/"

> ---
> v2	fix sign-off name suggest by Bjorn Helgaas
> ---
>  drivers/pci/controller/vmd.c   | 6 +++---
>  drivers/pci/switch/switchtec.c | 7 +++----
>  2 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
> index 94a14a3d7e55..49c72c2d8fe7 100644
> --- a/drivers/pci/controller/vmd.c
> +++ b/drivers/pci/controller/vmd.c
> @@ -894,7 +894,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  		return -ENOMEM;
>  
>  	vmd->dev = dev;
> -	vmd->instance = ida_simple_get(&vmd_instance_ida, 0, 0, GFP_KERNEL);
> +	vmd->instance = ida_alloc(&vmd_instance_ida, GFP_KERNEL);
>  	if (vmd->instance < 0)
>  		return vmd->instance;
>  
> @@ -935,7 +935,7 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  	return 0;
>  
>   out_release_instance:
> -	ida_simple_remove(&vmd_instance_ida, vmd->instance);
> +	ida_free(&vmd_instance_ida, vmd->instance);
>  	kfree(vmd->name);
>  	return err;
>  }
> @@ -958,7 +958,7 @@ static void vmd_remove(struct pci_dev *dev)
>  	vmd_cleanup_srcu(vmd);
>  	vmd_detach_resources(vmd);
>  	vmd_remove_irq_domain(vmd);
> -	ida_simple_remove(&vmd_instance_ida, vmd->instance);
> +	ida_free(&vmd_instance_ida, vmd->instance);
>  	kfree(vmd->name);
>  }
>  
> diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
> index c36c1238c604..75be4fe22509 100644
> --- a/drivers/pci/switch/switchtec.c
> +++ b/drivers/pci/switch/switchtec.c
> @@ -1376,8 +1376,7 @@ static struct switchtec_dev *stdev_create(struct pci_dev *pdev)
>  	dev->groups = switchtec_device_groups;
>  	dev->release = stdev_release;
>  
> -	minor = ida_simple_get(&switchtec_minor_ida, 0, 0,
> -			       GFP_KERNEL);
> +	minor = ida_alloc(&switchtec_minor_ida, GFP_KERNEL);
>  	if (minor < 0) {
>  		rc = minor;
>  		goto err_put;
> @@ -1692,7 +1691,7 @@ static int switchtec_pci_probe(struct pci_dev *pdev,
>  err_devadd:
>  	stdev_kill(stdev);
>  err_put:
> -	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
> +	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
>  	put_device(&stdev->dev);
>  	return rc;
>  }
> @@ -1704,7 +1703,7 @@ static void switchtec_pci_remove(struct pci_dev *pdev)
>  	pci_set_drvdata(pdev, NULL);
>  
>  	cdev_device_del(&stdev->cdev, &stdev->dev);
> -	ida_simple_remove(&switchtec_minor_ida, MINOR(stdev->dev.devt));
> +	ida_free(&switchtec_minor_ida, MINOR(stdev->dev.devt));
>  	dev_info(&stdev->dev, "unregistered.\n");
>  	stdev_kill(stdev);
>  	put_device(&stdev->dev);
> -- 
> 2.25.1
>
Re: [PATCH v2] drivers: pci: Directly use ida_alloc()/free()
Posted by Logan Gunthorpe 3 years, 10 months ago

On 2022-06-08 12:42, Bjorn Helgaas wrote:
> On Thu, Jun 02, 2022 at 07:11:15AM +0000, Ke Liu wrote:
>> Use ida_alloc()/ida_free() instead of deprecated
>> ida_simple_get()/ida_simple_remove().
>>
>> Signed-off-by: Ke Liu <liuke94@huawei.com>
> 
> I'd like acks from a vmd maintainer (Nirmal) and a switchtec
> maintainer (Kirt, Logan) before applying this.
> 
> You don't need to post this again with those acks, but if you do post
> it again for some reason, take note of the subject line history; see
> "git log --oneline drivers/pci/controller/ drivers/pci/switch/"
>> ---
>> v2	fix sign-off name suggest by Bjorn Helgaas
>> ---
>>  drivers/pci/controller/vmd.c   | 6 +++---
>>  drivers/pci/switch/switchtec.c | 7 +++----
>>  2 files changed, 6 insertions(+), 7 deletions(-)


Oh, yup, looks good to me. Thanks!

Acked-by: Logan Gunthorpe <logang@deltatee.com>

Logan