Skip to content

Commit

Permalink
async_tx: fix the bug in async_tx_run_dependencies
Browse files Browse the repository at this point in the history
Should clear the next pointer of the TX if we are sure that the
next TX (say NXT) will be submitted to the channel too. Overwise,
we break the chain of descriptors, because we lose the information
about the next descriptor to run. So next time, when invoke
async_tx_run_dependencies() with TX, it's TX->next will be NULL, and
NXT will be never submitted.

Cc: <stable@kernel.org>		[2.6.26]
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Yuri Tikhonov authored and Dan Williams committed Sep 5, 2008
1 parent b380b0d commit de24125
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion crypto/async_tx/async_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ async_tx_run_dependencies(struct dma_async_tx_descriptor *tx)
spin_lock_bh(&next->lock);
next->parent = NULL;
_next = next->next;
next->next = NULL;
if (_next && _next->chan == chan)
next->next = NULL;
spin_unlock_bh(&next->lock);

next->tx_submit(next);
Expand Down

0 comments on commit de24125

Please sign in to comment.