alistair23-linux/drivers/dma
Thomas Petazzoni ab6e439fd0 dma: mv_xor: fix error handling of mv_xor_channel_add()
When mv_xor_channel_add() fails for one XOR channel, we jump to the
err_channel_add label to clean up all previous channels that had been
initialized correctly. Unfortunately, while handling this error
condition, we were disposing the IRQ mapping before calling
mv_xor_channel_remove() (which does the free_irq()), which is
incorrect.

Instead, do things properly in the reverse order of the
initialization: first remove the XOR channel (so that free_irq() is
done), and then dispose the IRQ mapping.

This avoids ugly warnings when for some reason one of the XOR channel
fails to initialize.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-01-06 17:53:25 +00:00
..
ioat Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
ipu dma: ipu: rename mach/ipu.h to include/linux/dma/ipu-dma.h 2012-10-15 10:03:12 +08:00
ppc4xx dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
sh dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
amba-pl08x.c
at_hdmac.c
at_hdmac_regs.h
coh901318.c
coh901318_lli.c
coh901318_lli.h
dmaengine.c
dmaengine.h
dmatest.c dmatest: check for dma mapping error 2012-12-17 17:15:13 -08:00
dw_dmac.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
dw_dmac_regs.h drivers/dma/dw_dmac: make driver's endianness configurable 2012-10-25 14:37:53 -07:00
edma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
ep93xx_dma.c
fsldma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
fsldma.h
imx-dma.c Merge branch 'arm-next' of git://git.xilinx.com/linux-xlnx into next/cleanup 2012-11-06 07:51:06 -08:00
imx-sdma.c dma: imx-sdma: remove unneeded mach/hardware.h inclusion 2012-10-15 10:03:13 +08:00
intel_mid_dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
intel_mid_dma_regs.h
iop-adma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
iovlock.c
Kconfig drivers/dma/dw_dmac: make driver's endianness configurable 2012-10-25 14:37:53 -07:00
Makefile
mmp_pdma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
mmp_tdma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
mpc512x_dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
mv_xor.c dma: mv_xor: fix error handling of mv_xor_channel_add() 2013-01-06 17:53:25 +00:00
mv_xor.h dma: mv_xor: clear the window override control registers 2012-11-22 18:16:37 +01:00
mxs-dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-10 11:10:41 +09:00
omap-dma.c ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h 2012-11-30 08:41:50 -08:00
pch_dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
pl330.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
sa11x0-dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
sirf-dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
ste_dma40.c ARM: plat-nomadik: move DMA40 header to <linux/platform_data> 2012-11-05 09:55:32 +01:00
ste_dma40_ll.c ARM: plat-nomadik: move DMA40 header to <linux/platform_data> 2012-11-05 09:55:32 +01:00
ste_dma40_ll.h
tegra20-apb-dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
timb_dma.c dma: remove use of __devinit 2012-11-28 12:42:36 -08:00
TODO
txx9dmac.c
txx9dmac.h
virt-dma.c
virt-dma.h