diff options
author | Dinghao Liu <[email protected]> | 2020-08-13 15:46:30 +0800 |
---|---|---|
committer | Takashi Iwai <[email protected]> | 2020-08-13 11:21:05 +0200 |
commit | 5a25de6df789cc805a9b8ba7ab5deef5067af47e (patch) | |
tree | ad3e94516416883941fd0fe5e68265f45e599daf | |
parent | d96f27c80b65437a7b572647ecb4717ec9a50c98 (diff) |
ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
Freeing chip on error may lead to an Oops at the next time
the system goes to resume. Fix this by removing all
snd_echo_free() calls on error.
Fixes: 47b5d028fdce8 ("ALSA: Echoaudio - Add suspend support #2")
Signed-off-by: Dinghao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
-rw-r--r-- | sound/pci/echoaudio/echoaudio.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c index 1b7a67ccabce..a20b2bb5c898 100644 --- a/sound/pci/echoaudio/echoaudio.c +++ b/sound/pci/echoaudio/echoaudio.c @@ -2212,7 +2212,6 @@ static int snd_echo_resume(struct device *dev) if (err < 0) { kfree(commpage_bak); dev_err(dev, "resume init_hw err=%d\n", err); - snd_echo_free(chip); return err; } @@ -2239,7 +2238,6 @@ static int snd_echo_resume(struct device *dev) if (request_irq(pci->irq, snd_echo_interrupt, IRQF_SHARED, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "cannot grab irq\n"); - snd_echo_free(chip); return -EBUSY; } chip->irq = pci->irq; |