[PATCH] dma: mv_xor: fix kernel crash on probe error

Aaro Koskinen aaro.koskinen at iki.fi
Thu Dec 12 18:44:53 EST 2013


On Thu, Dec 12, 2013 at 03:36:13PM -0800, Dan Williams wrote:
> On Thu, Dec 12, 2013 at 2:42 PM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > On Thu, Dec 12, 2013 at 11:11:55PM +0200, Aaro Koskinen wrote:
> >> If the non-DT channel add path fails, the kernel will crash as the
> >> channel is not set to NULL and it will try to release the channel using
> >> the error value. Fix that.
> >>
> >> Signed-off-by: Aaro Koskinen <aaro.koskinen at iki.fi>
> >> ---
> >>  drivers/dma/mv_xor.c | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
> >> index 7807f0ef4e20..2cb35a62c7f0 100644
> >> --- a/drivers/dma/mv_xor.c
> >> +++ b/drivers/dma/mv_xor.c
> >> @@ -1227,6 +1227,7 @@ static int mv_xor_probe(struct platform_device *pdev)
> >>                                                  cd->cap_mask, irq);
> >>                       if (IS_ERR(xordev->channels[i])) {
> >>                               ret = PTR_ERR(xordev->channels[i]);
> >> +                             xordev->channels[i] = NULL;
> >>                               goto err_channel_add;
> >>                       }
> >>               }
> >
> > Yes, I found this too, and although this is _a_ fix, it's not my
> > preferred.  I'd much prefer this instead - avoid writing invalid
> > channels to xordev->channels[i] in the first place...  Slightly
> > larger patch but IMHO more correct.
> >
> 
> Looks good to me.  Aaro?

I'm also fine this version. Just to be sure, I tested the error path on
my Marvell OpenRD client, so you can put my Tested-by to the final patch.

A.



More information about the linux-arm-kernel mailing list