[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1220478231-8725-1-git-send-email-yanok@emcraft.com>
Date: Thu, 4 Sep 2008 01:43:51 +0400
From: Ilya Yanok <yanok@...raft.com>
To: linux-raid@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, wd@...x.de,
Yuri Tikhonov <yur@...raft.com>
Subject: [PATCH] ASYNC_TX: fix the bug in async_tx_run_dependencies
From: Yuri Tikhonov <yur@...raft.com>
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.
Signed-off-by: Yuri Tikhonov <yur@...raft.com>
---
crypto/async_tx/async_tx.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c
index 85eaf7b..e8362c1 100644
--- a/crypto/async_tx/async_tx.c
+++ b/crypto/async_tx/async_tx.c
@@ -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);
--
1.5.6.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists