Re: [BUG] OOPS 2.6.24.2 raid5 write with ioatdma

From: Dan Williams
Date: Fri Feb 15 2008 - 14:18:02 EST


On Fri, Feb 15, 2008 at 9:19 AM, Laurent CORBES
<laurent.corbes@xxxxxxxxxxxx> wrote:
> Hi all,
>
> I got a raid5 oops when trying to write on a raid 5 array, with ioatdma loaded
> and without DCA activated in bios:
>

At first glance I believe the attached patch may fix the issue, I'll
try to reproduce this locally.

Regards,
Dan
ioat: fix 'ack' handling, driver must ensure that 'ack' is zero

From: Dan Williams <dan.j.williams@xxxxxxxxx>

Initialize 'ack' to zero in case the descriptor has been recycled.

Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
---

drivers/dma/ioat_dma.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)


diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index 45e7b46..8cf542b 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -726,6 +726,7 @@ static struct dma_async_tx_descriptor *ioat1_dma_prep_memcpy(

if (new) {
new->len = len;
+ new->async_tx.ack = 0;
return &new->async_tx;
} else
return NULL;
@@ -749,6 +750,7 @@ static struct dma_async_tx_descriptor *ioat2_dma_prep_memcpy(

if (new) {
new->len = len;
+ new->async_tx.ack = 0;
return &new->async_tx;
} else
return NULL;