Skip to content

Commit

Permalink
dma: mv_xor: Remove all callers of mv_xor_slot_cleanup()
Browse files Browse the repository at this point in the history
In order to simplify the code, remove all the calls to the locked
mv_xor_slot_cleanup() and instead use the unlocked version only,

It's less error prone to have just one function, and require the caller
to ensure proper locking.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Ezequiel Garcia authored and Dan Williams committed Apr 10, 2014
1 parent 890766d commit e43147a
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions drivers/dma/mv_xor.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,10 @@ mv_xor_slot_cleanup(struct mv_xor_chan *mv_chan)
static void mv_xor_tasklet(unsigned long data)
{
struct mv_xor_chan *chan = (struct mv_xor_chan *) data;
mv_xor_slot_cleanup(chan);

spin_lock_bh(&chan->lock);
__mv_xor_slot_cleanup(chan);
spin_unlock_bh(&chan->lock);
}

static struct mv_xor_desc_slot *
Expand Down Expand Up @@ -658,9 +661,10 @@ static void mv_xor_free_chan_resources(struct dma_chan *chan)
struct mv_xor_desc_slot *iter, *_iter;
int in_use_descs = 0;

mv_xor_slot_cleanup(mv_chan);

spin_lock_bh(&mv_chan->lock);

__mv_xor_slot_cleanup(mv_chan);

list_for_each_entry_safe(iter, _iter, &mv_chan->chain,
chain_node) {
in_use_descs++;
Expand Down Expand Up @@ -704,7 +708,10 @@ static enum dma_status mv_xor_status(struct dma_chan *chan,
ret = dma_cookie_status(chan, cookie, txstate);
if (ret == DMA_COMPLETE)
return ret;
mv_xor_slot_cleanup(mv_chan);

spin_lock_bh(&mv_chan->lock);
__mv_xor_slot_cleanup(mv_chan);
spin_unlock_bh(&mv_chan->lock);

return dma_cookie_status(chan, cookie, txstate);
}
Expand Down

0 comments on commit e43147a

Please sign in to comment.