On Mon, 10 Aug 2020 08:14:58 +0200, Dinghao Liu wrote: > > When restore_dsp_rettings() fails, chip should be freed > just like when init_hw() and request_irq() fails. > > Fixes: 47b5d028fdce8 ("ALSA: Echoaudio - Add suspend support #2") > Signed-off-by: Dinghao Liu <dinghao.liu@xxxxxxxxxx> Actually it's rather wrong to call snd_echo_free() in the resume error path. This may lead to an Oops at the next time the system goes to resume. That said, we should drop snd_echo_free() calls in other error paths in snd_echo_resume() instead. thanks, Takashi > --- > sound/pci/echoaudio/echoaudio.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c > index 6aeb99aa2414..2aa183fe5dc1 100644 > --- a/sound/pci/echoaudio/echoaudio.c > +++ b/sound/pci/echoaudio/echoaudio.c > @@ -2226,6 +2226,7 @@ static int snd_echo_resume(struct device *dev) > chip->pipe_alloc_mask = pipe_alloc_mask; > if (err < 0) { > kfree(commpage_bak); > + snd_echo_free(chip); > return err; > } > > -- > 2.17.1 >