| From 6131e975adcce32f454601ac2d90fe7271923cb5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 19 Dec 2023 20:33:50 +0100 |
| Subject: dmaengine: idxd: Remove usage of the deprecated ida_simple_xx() API |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| [ Upstream commit 1075ee66a8c19bfa375b19c236fd6a22a867f138 ] |
| |
| ida_alloc() and ida_free() should be preferred to the deprecated |
| ida_simple_get() and ida_simple_remove(). |
| |
| This is less verbose. |
| |
| Note that the upper limit of ida_simple_get() is exclusive, but the one of |
| ida_alloc_range() is inclusive. Sothis change allows one more device. |
| |
| MINORMASK is ((1U << MINORBITS) - 1), so allowing MINORMASK as a maximum value |
| makes sense. It is also consistent with other "ida_.*MINORMASK" and |
| "ida_*MINOR()" usages. |
| |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Reviewed-by: Fenghua Yu <fenghua.yu@intel.com> |
| Acked-by: Lijun Pan <lijun.pan@intel.com> |
| Link: https://lore.kernel.org/r/ac991f5f42112fa782a881d391d447529cbc4a23.1702967302.git.christophe.jaillet@wanadoo.fr |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Stable-dep-of: c311f5e92484 ("dmaengine: idxd: Fix freeing the allocated ida too late") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/dma/idxd/cdev.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c |
| index 9b07474f450b5..e42c9a9f3c238 100644 |
| --- a/drivers/dma/idxd/cdev.c |
| +++ b/drivers/dma/idxd/cdev.c |
| @@ -49,7 +49,7 @@ static void idxd_cdev_dev_release(struct device *dev) |
| struct idxd_wq *wq = idxd_cdev->wq; |
| |
| cdev_ctx = &ictx[wq->idxd->data->type]; |
| - ida_simple_remove(&cdev_ctx->minor_ida, idxd_cdev->minor); |
| + ida_free(&cdev_ctx->minor_ida, idxd_cdev->minor); |
| kfree(idxd_cdev); |
| } |
| |
| @@ -375,7 +375,7 @@ int idxd_wq_add_cdev(struct idxd_wq *wq) |
| cdev = &idxd_cdev->cdev; |
| dev = cdev_dev(idxd_cdev); |
| cdev_ctx = &ictx[wq->idxd->data->type]; |
| - minor = ida_simple_get(&cdev_ctx->minor_ida, 0, MINORMASK, GFP_KERNEL); |
| + minor = ida_alloc_max(&cdev_ctx->minor_ida, MINORMASK, GFP_KERNEL); |
| if (minor < 0) { |
| kfree(idxd_cdev); |
| return minor; |
| -- |
| 2.53.0 |
| |