lkml.org 
[lkml]   [2017]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 02/16] dmaengine: bcm-sba-raid: Reduce locking context in sba_alloc_request()
    Date
    We don't require to hold "sba->reqs_lock" for long-time
    in sba_alloc_request() because lock protection is not
    required when initializing members of "struct sba_request".

    Signed-off-by: Anup Patel <anup.patel@broadcom.com>
    ---
    drivers/dma/bcm-sba-raid.c | 22 +++++++++++-----------
    1 file changed, 11 insertions(+), 11 deletions(-)

    diff --git a/drivers/dma/bcm-sba-raid.c b/drivers/dma/bcm-sba-raid.c
    index 76999b7..f81d5ac 100644
    --- a/drivers/dma/bcm-sba-raid.c
    +++ b/drivers/dma/bcm-sba-raid.c
    @@ -207,24 +207,24 @@ static struct sba_request *sba_alloc_request(struct sba_device *sba)
    struct sba_request *req = NULL;

    spin_lock_irqsave(&sba->reqs_lock, flags);
    -
    req = list_first_entry_or_null(&sba->reqs_free_list,
    struct sba_request, node);
    if (req) {
    list_move_tail(&req->node, &sba->reqs_alloc_list);
    - req->state = SBA_REQUEST_STATE_ALLOCED;
    - req->fence = false;
    - req->first = req;
    - INIT_LIST_HEAD(&req->next);
    - req->next_count = 1;
    - atomic_set(&req->next_pending_count, 1);
    -
    sba->reqs_free_count--;
    -
    - dma_async_tx_descriptor_init(&req->tx, &sba->dma_chan);
    }
    -
    spin_unlock_irqrestore(&sba->reqs_lock, flags);
    + if (!req)
    + return NULL;
    +
    + req->state = SBA_REQUEST_STATE_ALLOCED;
    + req->fence = false;
    + req->first = req;
    + INIT_LIST_HEAD(&req->next);
    + req->next_count = 1;
    + atomic_set(&req->next_pending_count, 1);
    +
    + dma_async_tx_descriptor_init(&req->tx, &sba->dma_chan);

    return req;
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-08-01 12:43    [W:4.151 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site