lkml.org 
[lkml]   [2018]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 16/26] dmaengine: Convert to new IDA API
    On 21-06-18, 14:28, Matthew Wilcox wrote:
    > Simpler and shorter code.

    I couldn't find ida_alloc/ida_free in 4.18-rc1 so I assume this will go
    thru tree adding this so:

    Acked-by: Vinod Koul <vkoul@kernel.org>

    >
    > Signed-off-by: Matthew Wilcox <willy@infradead.org>
    > ---
    > drivers/dma/dmaengine.c | 20 +++++---------------
    > 1 file changed, 5 insertions(+), 15 deletions(-)
    >
    > diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
    > index 08ba8473a284..1e9bdadfc312 100644
    > --- a/drivers/dma/dmaengine.c
    > +++ b/drivers/dma/dmaengine.c
    > @@ -161,9 +161,7 @@ static void chan_dev_release(struct device *dev)
    >
    > chan_dev = container_of(dev, typeof(*chan_dev), device);
    > if (atomic_dec_and_test(chan_dev->idr_ref)) {
    > - mutex_lock(&dma_list_mutex);
    > - ida_remove(&dma_ida, chan_dev->dev_id);
    > - mutex_unlock(&dma_list_mutex);
    > + ida_free(&dma_ida, chan_dev->dev_id);
    > kfree(chan_dev->idr_ref);
    > }
    > kfree(chan_dev);
    > @@ -896,16 +894,10 @@ static bool device_has_all_tx_types(struct dma_device *device)
    >
    > static int get_dma_id(struct dma_device *device)
    > {
    > - int rc;
    > -
    > - do {
    > - if (!ida_pre_get(&dma_ida, GFP_KERNEL))
    > - return -ENOMEM;
    > - mutex_lock(&dma_list_mutex);
    > - rc = ida_get_new(&dma_ida, &device->dev_id);
    > - mutex_unlock(&dma_list_mutex);
    > - } while (rc == -EAGAIN);
    > + int rc = ida_alloc(&dma_ida, GFP_KERNEL);
    >
    > + if (rc >= 0)
    > + device->dev_id = rc;
    > return rc;
    > }
    >
    > @@ -1090,9 +1082,7 @@ int dma_async_device_register(struct dma_device *device)
    > err_out:
    > /* if we never registered a channel just release the idr */
    > if (atomic_read(idr_ref) == 0) {
    > - mutex_lock(&dma_list_mutex);
    > - ida_remove(&dma_ida, device->dev_id);
    > - mutex_unlock(&dma_list_mutex);
    > + ida_free(&dma_ida, device->dev_id);
    > kfree(idr_ref);
    > return rc;
    > }
    > --
    > 2.17.1

    --
    ~Vinod

    \
     
     \ /
      Last update: 2018-06-23 14:30    [W:4.160 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site