Re: [PATCH] DMA: Correct invalid assumptions in the Kconfig text

Haavard Skinnemoen
2007-10-27T14:01:33Z

On Fri, 26 Oct 2007 10:02:24 -0700
"Dan Williams" <dan.j.williams@intel.com> wrote:
> On 10/25/07, Haavard Skinnemoen <hskinnemoen@atmel.com> wrote:
> > static irqreturn_t iop_adma_err_handler(int irq, void *data)
> > {
> > (...)
> >
> > BUG();
> > }
> >
> > That's a panic waiting to happen, isn't it?
>
> Yes, and it should have a comment, because for now this is deliberate.
> This was primarily driven by the fact that MD has no way of
> recovering from hardware errors during software-memcpy or
> software-xor_blocks so there was no where to plug-in
> accelerated-memcpy/xor error recovery. I can foresee other clients
> wanting to have this information reported but async_tx based clients
> are supposed to be blissfully unaware of under the covers hardware
> acceleration.

Yeah, it's a pretty serious bug if the DMA engine flags an error. But
wouldn't it be better to BUG() in the context of the caller? That way,
you won't necessarily bring down the whole system.

> One idea is to pass an error-pointer as the parameter to callback
> routines, but that would hamper the client's ability to recover the
> context of the failure...

It's probably a good idea to dump the descriptors at some point. I
don't think the client has many options to deal with such failures
other than reset something or kill something, but if the client gets
notified, it at least has some chance of recovering.

Håvard