[alsa-devel] [PATCH] ASoC: Intel: sst-acpi: Fix Oops in case of missing firmware
I swear I tested missing firmware in commit e5161d7987f1 ("ASoC: Intel: sst-acpi: Request firmware before SST platform driver probing").
Unfortunately same wasn't done in commit 6dda27cbbd1d ("ASoC: Intel: sst-acpi: Add support for multiple machine drivers per platform") which will cause NULL pointer dereference in sst_acpi_fw_cb() when printing the error since sst_acpi->mach is not set.
Fix this obvious error by setting the sst_acpi->mach in sst_acpi_probe().
Reported-by: Mika Westerberg mika.westerberg@linux.intel.com Signed-off-by: Jarkko Nikula jarkko.nikula@linux.intel.com --- sound/soc/intel/sst-acpi.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/intel/sst-acpi.c b/sound/soc/intel/sst-acpi.c index 0bb43169e146..5d06eecb6198 100644 --- a/sound/soc/intel/sst-acpi.c +++ b/sound/soc/intel/sst-acpi.c @@ -139,6 +139,7 @@ static int sst_acpi_probe(struct platform_device *pdev) sst_pdata = &sst_acpi->sst_pdata; sst_pdata->id = desc->sst_id; sst_acpi->desc = desc; + sst_acpi->mach = mach;
if (desc->resindex_dma_base >= 0) { sst_pdata->dma_engine = desc->dma_engine;
On Tue, 2014-02-25 at 16:37 +0200, Jarkko Nikula wrote:
I swear I tested missing firmware in commit e5161d7987f1 ("ASoC: Intel: sst-acpi: Request firmware before SST platform driver probing").
Unfortunately same wasn't done in commit 6dda27cbbd1d ("ASoC: Intel: sst-acpi: Add support for multiple machine drivers per platform") which will cause NULL pointer dereference in sst_acpi_fw_cb() when printing the error since sst_acpi->mach is not set.
Fix this obvious error by setting the sst_acpi->mach in sst_acpi_probe().
Reported-by: Mika Westerberg mika.westerberg@linux.intel.com Signed-off-by: Jarkko Nikula jarkko.nikula@linux.intel.com
Acked-by: Liam Girdwood liam.r.girdwood@linux.intel.com
On Tue, 2014-02-25 at 16:37 +0200, Jarkko Nikula wrote:
I swear I tested missing firmware in commit e5161d7987f1 ("ASoC: Intel: sst-acpi: Request firmware before SST platform driver probing").
Unfortunately same wasn't done in commit 6dda27cbbd1d ("ASoC: Intel: sst-acpi: Add support for multiple machine drivers per platform") which will cause NULL pointer dereference in sst_acpi_fw_cb() when printing the error since sst_acpi->mach is not set.
Fix this obvious error by setting the sst_acpi->mach in sst_acpi_probe().
FWIW, I did test with the patch set from lrg's tree as of a couple days ago, and hit this crash. So I can confirm the bug for sure. I'll test the fix with a new kernel build in a couple of hours.
On Tue, Feb 25, 2014 at 04:37:47PM +0200, Jarkko Nikula wrote:
I swear I tested missing firmware in commit e5161d7987f1 ("ASoC: Intel: sst-acpi: Request firmware before SST platform driver probing").
Applied, thanks.
participants (4)
-
Adam Williamson
-
Jarkko Nikula
-
Liam Girdwood
-
Mark Brown