diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2019-09-27 15:05:26 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-11-10 11:33:51 +0100 |
commit | 635c4447c6192e2f454436f7dc66387f6e083dd1 (patch) | |
tree | 66d86a0e1769a198c9da62cbf6966fdf94419b35 /sound/soc/sof/loader.c | |
parent | 8e84c2f5ac71550de5f1bce5bdc83ac9c9ca561f (diff) |
ASoC: SOF: loader: fix kernel oops on firmware boot failure
[ Upstream commit 798614885a0e1b867ceb0197c30c2d82575c73b0 ]
When we fail to boot the firmware, we encounter a kernel oops in
hda_dsp_get_registers(), which is called conditionally in
hda_dsp_dump() when the sdev_>boot_complete flag is set.
Setting this flag _after_ dumping the data fixes the issue and does
not change the programming flow.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20190927200538.660-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound/soc/sof/loader.c')
-rw-r--r-- | sound/soc/sof/loader.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/soc/sof/loader.c b/sound/soc/sof/loader.c index 952a19091c58..01775231f2b8 100644 --- a/sound/soc/sof/loader.c +++ b/sound/soc/sof/loader.c @@ -370,10 +370,10 @@ int snd_sof_run_firmware(struct snd_sof_dev *sdev) msecs_to_jiffies(sdev->boot_timeout)); if (ret == 0) { dev_err(sdev->dev, "error: firmware boot failure\n"); - /* after this point FW_READY msg should be ignored */ - sdev->boot_complete = true; snd_sof_dsp_dbg_dump(sdev, SOF_DBG_REGS | SOF_DBG_MBOX | SOF_DBG_TEXT | SOF_DBG_PCI); + /* after this point FW_READY msg should be ignored */ + sdev->boot_complete = true; return -EIO; } |