Just a small concern... On Thu, Sep 26, 2019 at 09:29:51AM +0800, Shengjiu Wang wrote: > static int fsl_asrc_dma_startup(struct snd_pcm_substream *substream) > { > + > + release_pair = false; > + ret = snd_soc_set_runtime_hwparams(substream, &snd_imx_hardware); This set_runtime_hwparams() always returns 0 for now, but if one day it changes and it fails here, kfree() will be still ignored although the startup() gets error-out. We could avoid this if we continue to ignore the return value like the current code. Or we may check ret at kfree() also? > + > +out: > + dma_release_channel(tmp_chan); > + > +dma_chan_err: > + fsl_asrc_release_pair(pair); > + > +req_pair_err: > + if (release_pair) > + kfree(pair); > + > + return ret; > }