• Johan Hovold's avatar
    ASoC: fix pcm-creation regression · 045f833f
    Johan Hovold authored
    commit c641e5b2 upstream.
    
    This reverts commit 99b04f4c ("ASoC: add Component level
    pcm_new/pcm_free"), which started calling the pcm_new callback for every
    component in a *card* when creating a new pcm, something which does not
    seem to make any sense.
    
    This specifically led to memory leaks in systems with more than one
    platform component and where DMA memory is allocated in the
    platform-driver callback. For example, when both mcasp devices are being
    used on an am335x board, DMA memory would be allocated twice for every
    DAI link during probe.
    
    When CONFIG_SND_VERBOSE_PROCFS was set this fortunately also led to
    warnings such as:
    
    WARNING: CPU: 0 PID: 565 at ../fs/proc/generic.c:346 proc_register+0x110/0x154
    proc_dir_entry 'sub0/prealloc' already registered
    
    Since there seems to be no users of the new component callbacks, and the
    current implementation introduced a regression, let's revert the
    offending commit for now.
    
    Fixes: 99b04f4c ("ASoC: add Component level pcm_new/pcm_free")
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    045f833f
soc-core.c 106 KB