[PATCH] slimbus: core: Remove usage of the deprecated ida_simple_xx() API
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 change this change allows one more device. Previously address 0xFE was never used.
Fixes: 46a2bb5a7f7e ("slimbus: core: Add slim controllers support") Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr --- /!\ Untested /!\
The change of behavior is motivated by the comment in drivers/slimbus/slimbus.h stating that /* Manager's logical address is set to 0xFF per spec */, so all other values, including 0xFE should be valid, IMHO.
So considering this as a bug-fix, I added a Fixes tag. --- drivers/slimbus/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c index d43873bb5fe6..01cbd4621981 100644 --- a/drivers/slimbus/core.c +++ b/drivers/slimbus/core.c @@ -436,8 +436,8 @@ static int slim_device_alloc_laddr(struct slim_device *sbdev, if (ret < 0) goto err; } else if (report_present) { - ret = ida_simple_get(&ctrl->laddr_ida, - 0, SLIM_LA_MANAGER - 1, GFP_KERNEL); + ret = ida_alloc_max(&ctrl->laddr_ida, + SLIM_LA_MANAGER - 1, GFP_KERNEL); if (ret < 0) goto err;
Le 16/12/2023 à 17:47, Christophe JAILLET a écrit :
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 change this change allows one more device. Previously address 0xFE was never used.
Fixes: 46a2bb5a7f7e ("slimbus: core: Add slim controllers support") Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr
/!\ Untested /!\
The change of behavior is motivated by the comment in drivers/slimbus/slimbus.h stating that /* Manager's logical address is set to 0xFF per spec */, so all other values, including 0xFE should be valid, IMHO.
So considering this as a bug-fix, I added a Fixes tag.
drivers/slimbus/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c index d43873bb5fe6..01cbd4621981 100644 --- a/drivers/slimbus/core.c +++ b/drivers/slimbus/core.c @@ -436,8 +436,8 @@ static int slim_device_alloc_laddr(struct slim_device *sbdev, if (ret < 0) goto err; } else if (report_present) {
ret = ida_simple_get(&ctrl->laddr_ida,
0, SLIM_LA_MANAGER - 1, GFP_KERNEL);
ret = ida_alloc_max(&ctrl->laddr_ida,
if (ret < 0) goto err;SLIM_LA_MANAGER - 1, GFP_KERNEL);
Hi,
gentle reminder.
All patches to remove the ida_simple API have been sent. And Matthew Wilcox seems happy with the on going work. (see [1])
Based on next-20240207 $git grep ida_simple_get | wc -l 38
https://elixir.bootlin.com/linux/v6.8-rc3/A/ident/ida_simple_get 50
https://elixir.bootlin.com/linux/v6.7.4/A/ident/ida_simple_get 81
Thanks CJ
[1]: https://lore.kernel.org/all/ZaqruGVz734zjxrZ@casper.infradead.org/
On Sat, 16 Dec 2023 17:47:34 +0100, Christophe JAILLET wrote:
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 change this change allows one more device. Previously address 0xFE was never used.
[...]
Applied, thanks!
[1/1] slimbus: core: Remove usage of the deprecated ida_simple_xx() API commit: 6e8ba95e17eede7045e673d9e1b6b8ee1055a46c
Best regards,
participants (2)
-
Christophe JAILLET
-
Srinivas Kandagatla