| From 6abcfe3bb5d7be4e521d7fd872eb482a52dbc199 Mon Sep 17 00:00:00 2001 |
| From: Dinghao Liu <dinghao.liu@zju.edu.cn> |
| Date: Thu, 13 Aug 2020 15:46:30 +0800 |
| Subject: [PATCH] ALSA: echoaudio: Fix potential Oops in snd_echo_resume() |
| |
| commit 5a25de6df789cc805a9b8ba7ab5deef5067af47e upstream. |
| |
| 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 <dinghao.liu@zju.edu.cn> |
| Link: https://lore.kernel.org/r/20200813074632.17022-1-dinghao.liu@zju.edu.cn |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c |
| index b612a536a5a1..0e15d497946a 100644 |
| --- a/sound/pci/echoaudio/echoaudio.c |
| +++ b/sound/pci/echoaudio/echoaudio.c |
| @@ -2199,7 +2199,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; |
| } |
| |
| @@ -2226,7 +2225,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; |
| -- |
| 2.27.0 |
| |