android_kernel_oneplus_msm8998/sound/soc
Takashi Iwai 6dcb01e783 ASoC: intel: Fix crash at suspend/resume without card registration
commit 2fc995a87f2efcd803438f07bfecd35cc3d90d32 upstream.

When ASoC Intel SST Medfield driver is probed but without codec / card
assigned, it causes an Oops and freezes the kernel at suspend/resume,

 PM: Suspending system (freeze)
 Suspending console(s) (use no_console_suspend to debug)
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
 IP: [<ffffffffc09d9409>] sst_soc_prepare+0x19/0xa0 [snd_soc_sst_mfld_platform]
 Oops: 0000 [#1] PREEMPT SMP
 CPU: 0 PID: 1552 Comm: systemd-sleep Tainted: G W 4.9.0-rc6-1.g5f5c2ad-default #1
 Call Trace:
  [<ffffffffb45318f9>] dpm_prepare+0x209/0x460
  [<ffffffffb4531b61>] dpm_suspend_start+0x11/0x60
  [<ffffffffb40d3cc2>] suspend_devices_and_enter+0xb2/0x710
  [<ffffffffb40d462e>] pm_suspend+0x30e/0x390
  [<ffffffffb40d2eba>] state_store+0x8a/0x90
  [<ffffffffb43c670f>] kobj_attr_store+0xf/0x20
  [<ffffffffb42b0d97>] sysfs_kf_write+0x37/0x40
  [<ffffffffb42b02bc>] kernfs_fop_write+0x11c/0x1b0
  [<ffffffffb422be68>] __vfs_write+0x28/0x140
  [<ffffffffb43728a8>] ? apparmor_file_permission+0x18/0x20
  [<ffffffffb433b2ab>] ? security_file_permission+0x3b/0xc0
  [<ffffffffb422d095>] vfs_write+0xb5/0x1a0
  [<ffffffffb422e3d6>] SyS_write+0x46/0xa0
  [<ffffffffb4719fbb>] entry_SYSCALL_64_fastpath+0x1e/0xad

Add proper NULL checks in the PM code of mdfld driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-06 11:16:15 +01:00
..
adi
atmel ASoC: atmel_ssc_dai: Don't unconditionally reset SSC on stream startup 2016-09-15 08:27:52 +02:00
au1x ASoC: Updates for v4.4 2015-10-26 11:15:54 +09:00
bcm ASoC: bcm2835-i2s: Fix module autoload for OF platform drivers 2015-08-27 20:22:47 +01:00
blackfin ASoC: blackfin: Convert to devm_snd_soc_register_card 2015-09-14 18:32:58 +01:00
cirrus ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal 2015-04-27 19:26:07 +01:00
codecs ASoC: cs4270: fix DAPM stream name mismatch 2016-11-18 10:48:34 +01:00
davinci Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/es8328', 'asoc/fix/fsl-sai', 'asoc/fix/rockchip', 'asoc/fix/sgtl5000' and 'asoc/fix/wm8974' into asoc-linus 2015-12-23 00:23:27 +00:00
dwc Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es8328', 'asoc/topic/fsl' and 'asoc/topic/fsl-card' into asoc-next 2015-10-26 11:16:03 +09:00
fsl Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/es8328', 'asoc/fix/fsl-sai', 'asoc/fix/rockchip', 'asoc/fix/sgtl5000' and 'asoc/fix/wm8974' into asoc-linus 2015-12-23 00:23:27 +00:00
generic ASoC: simple-card: Add tdm slot mask support to simple-card 2015-09-16 18:00:30 +01:00
intel ASoC: intel: Fix crash at suspend/resume without card registration 2017-01-06 11:16:15 +01:00
jz4740 ASoC: jz4740: Fix module autoload for OF platform driver 2015-09-14 18:46:14 +01:00
kirkwood ASoC: kirkwood: Fix module autoload for OF platform driver 2015-09-14 18:46:28 +01:00
mediatek Merge remote-tracking branches 'asoc/topic/jz4740', 'asoc/topic/kirkwood', 'asoc/topic/mtk', 'asoc/topic/multi' and 'asoc/topic/mxs' into asoc-next 2015-09-23 11:01:22 -07:00
mxs ASoC: mxs-sgtl5000: Convert to devm_snd_soc_register_card 2015-09-14 18:33:17 +01:00
nuc900 ASoC: nuc900: Convert to devm_snd_soc_register_platform 2015-08-28 18:08:35 +01:00
omap ASoC: omap-mcpdm: Fix irq resource handling 2016-10-07 15:23:46 +02:00
pxa ASoC: pxa: pxa-pcm-lib: switch over to snd-soc-dmaengine-pcm 2015-09-30 23:21:16 +01:00
qcom ASoC: qcom: change PTR_ERR argument 2015-09-17 11:36:19 +01:00
rockchip Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/es8328', 'asoc/fix/fsl-sai', 'asoc/fix/rockchip', 'asoc/fix/sgtl5000' and 'asoc/fix/wm8974' into asoc-linus 2015-12-23 00:23:27 +00:00
samsung ASoC: s3c24xx: use const snd_soc_component_driver pointer 2016-05-04 14:48:48 -07:00
sh ASoC: rsnd: make sure SRC In Rate feature enablement 2015-11-10 19:02:02 +00:00
sirf
spear ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM 2015-09-16 17:46:11 +01:00
sti ASoC: sti: set player private data 2015-11-19 17:49:35 +00:00
sunxi ASoC: sun4i-codec: return error code instead of NULL when create_card fails 2016-11-18 10:48:37 +01:00
tegra ASoC: tegra: Use devm_ioremap_resource instead of open code 2015-08-26 18:58:46 +01:00
txx9 ASoC: txx9: Convert to devm_snd_soc_register_platform 2015-08-28 18:09:04 +01:00
ux500 Merge branch 'topic/hw-constraint-single' into for-next 2015-10-23 06:57:50 +02:00
xtensa ASoC: xtfpga-i2s: Add missing __rcu annotation 2015-07-29 15:07:54 +01:00
zte Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa' and 'asoc/topic/zx296702' into asoc-next 2015-08-30 15:59:18 +01:00
Kconfig Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
Makefile Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2015-10-26 11:15:55 +09:00
soc-ac97.c ASoC: ac97: Add support for resetting device before registration 2015-07-23 17:33:28 +01:00
soc-cache.c
soc-compress.c ASoC: compress: Fix compress device direction check 2016-01-31 11:28:58 -08:00
soc-core.c ASoC: core: Change power state before rechecking endpoint 2015-11-25 12:52:29 +00:00
soc-dapm.c ASoC: dapm: Fix kcontrol creation for output driver widget 2016-10-31 04:14:00 -06:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal 2015-04-27 19:26:07 +01:00
soc-io.c
soc-jack.c ASoC: Updates for v4.2 2015-06-08 20:47:53 +02:00
soc-ops.c ASoC: fix kernel-doc warnings in sound/soc/soc-ops.c 2015-11-25 12:35:40 +00:00
soc-pcm.c ASoC: dpcm: fix the BE state on hw_free 2016-02-17 12:30:59 -08:00
soc-topology.c ASoC: topology: Fix error return code in soc_tplg_dapm_widget_create() 2016-10-31 04:14:00 -06:00
soc-utils.c ASoC: Document snd-soc-dummy-dai purpose 2015-08-31 16:40:26 +01:00