Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 20 Dec 2023 19:49:29 -0600 | Subject | Re: [PATCH v2] dmaengine: idxd: Remove usage of the deprecated ida_simple_xx() API | From | Lijun Pan <> |
| |
On 12/19/2023 1:33 PM, Christophe JAILLET wrote: > 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> > ---
Acked-by: Lijun Pan <lijun.pan@intel.com>
> Changes v2: > - remove note about compile tested only, now tested on hw by Fenghua Yu > - fix some wording in the commit description [Fenghua Yu] > > v1: https://lore.kernel.org/all/a899125f42c12fa782a881d341d147519cbb4a23.1702967302.git.christophe.jaillet@wanadoo.fr/ > --- > 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 0423655f5a88..b00926abc69a 100644 > --- a/drivers/dma/idxd/cdev.c > +++ b/drivers/dma/idxd/cdev.c > @@ -165,7 +165,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); > } > > @@ -463,7 +463,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);
It shouldn't be an issue though it should be below statement if directly converting to ida_alloc_max + minor = ida_alloc_max(&cdev_ctx->minor_ida, MINORMASK - 1, GFP_KERNEL);
> if (minor < 0) { > kfree(idxd_cdev); > return minor;
| ![\](/images/icornerr.gif) |