]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fsi: occ: remove usage of the deprecated ida_simple_xx() API
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 8 Jun 2024 14:34:18 +0000 (16:34 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 25 Jun 2024 05:25:08 +0000 (22:25 -0700)
Patch series "Remove usage of the deprecated ida_simple_xx() API".

The series removes the *last* usages of the deprecated ida_simple_xx() API.

This patch (of 3):

ida_alloc() and ida_free() should be preferred to the deprecated
ida_simple_get() and ida_simple_remove().

Note that the upper limit of ida_simple_get() is exclusive, but the one of
ida_alloc_range() is inclusive.  So, this upper limit, INT_MAX, should
have been changed to INT_MAX-1.

But, it is likely that the INT_MAX 'idx' is valid that the max value passed
to ida_simple_get() should have been 0.

So, allow this INT_MAX 'idx' value now.

Link: https://lkml.kernel.org/r/cover.1717855701.git.christophe.jaillet@wanadoo.fr
Link: https://lkml.kernel.org/r/8e28b0c45fe8f28ca4475fe0027f8099c41259f0.1717855701.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Cc: Alistar Popple <alistair@popple.id.au>
Cc: Christian Gromm <christian.gromm@microchip.com>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Joel Stanley <joel@jms.id.au>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/fsi/fsi-occ.c

index da35ca9e84a6e1c2087b9bead82c4bc40b554fc9..f7157c1d77d807c2b1a8277298d18037b4c3dfe5 100644 (file)
@@ -656,17 +656,16 @@ static int occ_probe(struct platform_device *pdev)
                rc = of_property_read_u32(dev->of_node, "reg", &reg);
                if (!rc) {
                        /* make sure we don't have a duplicate from dts */
-                       occ->idx = ida_simple_get(&occ_ida, reg, reg + 1,
-                                                 GFP_KERNEL);
+                       occ->idx = ida_alloc_range(&occ_ida, reg, reg,
+                                                  GFP_KERNEL);
                        if (occ->idx < 0)
-                               occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX,
-                                                         GFP_KERNEL);
+                               occ->idx = ida_alloc_min(&occ_ida, 1,
+                                                        GFP_KERNEL);
                } else {
-                       occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX,
-                                                 GFP_KERNEL);
+                       occ->idx = ida_alloc_min(&occ_ida, 1, GFP_KERNEL);
                }
        } else {
-               occ->idx = ida_simple_get(&occ_ida, 1, INT_MAX, GFP_KERNEL);
+               occ->idx = ida_alloc_min(&occ_ida, 1, GFP_KERNEL);
        }
 
        platform_set_drvdata(pdev, occ);
@@ -680,7 +679,7 @@ static int occ_probe(struct platform_device *pdev)
        rc = misc_register(&occ->mdev);
        if (rc) {
                dev_err(dev, "failed to register miscdevice: %d\n", rc);
-               ida_simple_remove(&occ_ida, occ->idx);
+               ida_free(&occ_ida, occ->idx);
                kvfree(occ->buffer);
                return rc;
        }
@@ -719,7 +718,7 @@ static int occ_remove(struct platform_device *pdev)
        else
                device_for_each_child(&pdev->dev, NULL, occ_unregister_of_child);
 
-       ida_simple_remove(&occ_ida, occ->idx);
+       ida_free(&occ_ida, occ->idx);
 
        return 0;
 }