[PATCH] ARM: at91/avr32/atmel-mci: fix DMA-channel leak on module unload
Ludovic Desroches
ludovic.desroches at atmel.com
Fri Mar 15 06:56:06 EDT 2013
On Wed, Mar 13, 2013 at 05:11:59PM +0100, Johan Hovold wrote:
> Fix regression introduced by commit 796211b7953 ("mmc: atmel-mci: add
> pdc support and runtime capabilities detection") which removed the need
> for CONFIG_MMC_ATMELMCI_DMA but kept the Kconfig-entry as well as the
> compile guards around dma_release_channel() in remove(). Consequently,
> DMA is always enabled (if supported), but the DMA-channel is not
> released on module unload unless the DMA-config option is selected.
>
> Remove the no longer used CONFIG_MMC_ATMELMCI_DMA option completely.
>
> Cc: stable <stable at vger.kernel.org>
> Signed-off-by: Johan Hovold <jhovold at gmail.com>
Hi Johan,
Good point so
Acked-by: Ludovic Desroches <ludovic.desroches at atmel.com>
Thanks
> ---
> arch/arm/configs/at91sam9g45_defconfig | 1 -
> arch/avr32/configs/favr-32_defconfig | 1 -
> arch/avr32/configs/merisc_defconfig | 1 -
> drivers/mmc/host/Kconfig | 10 ----------
> drivers/mmc/host/atmel-mci.c | 2 --
> 5 files changed, 15 deletions(-)
>
> diff --git a/arch/arm/configs/at91sam9g45_defconfig b/arch/arm/configs/at91sam9g45_defconfig
> index 606d48f..8aab786 100644
> --- a/arch/arm/configs/at91sam9g45_defconfig
> +++ b/arch/arm/configs/at91sam9g45_defconfig
> @@ -173,7 +173,6 @@ CONFIG_MMC=y
> # CONFIG_MMC_BLOCK_BOUNCE is not set
> CONFIG_SDIO_UART=m
> CONFIG_MMC_ATMELMCI=y
> -CONFIG_MMC_ATMELMCI_DMA=y
> CONFIG_LEDS_ATMEL_PWM=y
> CONFIG_LEDS_GPIO=y
> CONFIG_LEDS_TRIGGER_TIMER=y
> diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
> index 0421498..9791820 100644
> --- a/arch/avr32/configs/favr-32_defconfig
> +++ b/arch/avr32/configs/favr-32_defconfig
> @@ -122,7 +122,6 @@ CONFIG_USB_G_SERIAL=m
> CONFIG_USB_CDC_COMPOSITE=m
> CONFIG_MMC=y
> CONFIG_MMC_ATMELMCI=y
> -CONFIG_MMC_ATMELMCI_DMA=y
> CONFIG_NEW_LEDS=y
> CONFIG_LEDS_CLASS=y
> CONFIG_LEDS_ATMEL_PWM=m
> diff --git a/arch/avr32/configs/merisc_defconfig b/arch/avr32/configs/merisc_defconfig
> index 3befab9..65de443 100644
> --- a/arch/avr32/configs/merisc_defconfig
> +++ b/arch/avr32/configs/merisc_defconfig
> @@ -102,7 +102,6 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
> CONFIG_LOGO=y
> CONFIG_MMC=y
> CONFIG_MMC_ATMELMCI=y
> -CONFIG_MMC_ATMELMCI_DMA=y
> CONFIG_NEW_LEDS=y
> CONFIG_LEDS_CLASS=y
> CONFIG_LEDS_ATMEL_PWM=y
> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> index 8d13c65..009dabd 100644
> --- a/drivers/mmc/host/Kconfig
> +++ b/drivers/mmc/host/Kconfig
> @@ -292,16 +292,6 @@ config MMC_ATMELMCI
>
> If unsure, say N.
>
> -config MMC_ATMELMCI_DMA
> - bool "Atmel MCI DMA support"
> - depends on MMC_ATMELMCI && (AVR32 || ARCH_AT91SAM9G45) && DMA_ENGINE
> - help
> - Say Y here to have the Atmel MCI driver use a DMA engine to
> - do data transfers and thus increase the throughput and
> - reduce the CPU utilization.
> -
> - If unsure, say N.
> -
> config MMC_MSM
> tristate "Qualcomm SDCC Controller Support"
> depends on MMC && ARCH_MSM
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index 722af1d..10f8b73 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -2487,10 +2487,8 @@ static int __exit atmci_remove(struct platform_device *pdev)
> atmci_readl(host, ATMCI_SR);
> clk_disable(host->mck);
>
> -#ifdef CONFIG_MMC_ATMELMCI_DMA
> if (host->dma.chan)
> dma_release_channel(host->dma.chan);
> -#endif
>
> free_irq(platform_get_irq(pdev, 0), host);
> iounmap(host->regs);
> --
> 1.8.1.5
>
More information about the linux-arm-kernel
mailing list