Thread (8 messages) 8 messages, 4 authors, 2012-11-20

Re: [PATCH] raid5: panic() on dma_wait_for_async_tx() error

From: NeilBrown <hidden>
Date: 2012-11-19 01:06:51
Also in: lkml

Hi Dan,
 could you comment on this please?  Would it make sense to arrange for errors
 to propagate up?  Or should we arrange to do a software-fallback in the dma
 engine is a problem?  What sort of things can cause error here anyway?

Thanks,
NeilBrown



On Thu, 08 Nov 2012 12:20:55 +0100 Bartlomiej Zolnierkiewicz
[off-list ref] wrote:
On Thursday 08 November 2012 12:15:26 Alan Cox wrote:
quoted
On Thu, 08 Nov 2012 11:06:29 +0100
Bartlomiej Zolnierkiewicz [off-list ref] wrote:
quoted
From: Bartlomiej Zolnierkiewicz <redacted>
Subject: [PATCH] raid5: panic() on dma_wait_for_async_tx() error

There is not much we can do on dma_wait_for_async_tx() error
so just panic() for now.

Cc: Neil Brown <redacted>
Cc: Vinod Koul <redacted>
Cc: Dan Williams <redacted>
Cc: Tomasz Figa <redacted>
Signed-off-by: Bartlomiej Zolnierkiewicz <redacted>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/md/raid5.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: b/drivers/md/raid5.c
===================================================================
--- a/drivers/md/raid5.c	2012-11-07 16:25:19.480876012 +0100
+++ b/drivers/md/raid5.c	2012-11-07 16:27:46.244875992 +0100
@@ -3223,7 +3223,9 @@ static void handle_stripe_expansion(stru
 	/* done submitting copies, wait for them to complete */
 	if (tx) {
 		async_tx_ack(tx);
-		dma_wait_for_async_tx(tx);
+		if (dma_wait_for_async_tx(tx) != DMA_SUCCESS)
+			panic("%s: DMA error waiting for transaction\n",
+			      __func__);
Thats a really horrible place to panic.
Still it seems better thing to do than silently ignoring errors
and trying to continue operations with inconsistent data.

Unfortunately higher-layers don't support error conditions and
fixing them seems to be non-trivial task.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung Poland R&D Center
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help