In testing some db845c audio patches, I came across a crash (see
below) that I only could reproduce on android-mainline and not
with Linus' tree.
I chased down the issue to a null pointer traversal that was
introduced commit 9cb7ec3e9b ("ANDROID: ASoC: core - add
hostless DAI support").
This patch adds an extra check to avoid the null traversal
[ 74.058167] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010
...
[ 74.130054] Hardware name: Thundercomm Dragonboard 845c (DT)
[ 74.135777] pstate: 80400005 (Nzcv daif +PAN -UAO)
[ 74.140639] pc : soc_pcm_hw_params+0x194/0x690
[ 74.145141] lr : soc_pcm_hw_params+0x88/0x690
[ 74.149544] sp : ffffffc01249b9d0
...
[ 74.233392] Call trace:
[ 74.235878] soc_pcm_hw_params+0x194/0x690
[ 74.240028] dpcm_fe_dai_hw_params+0xb0/0x130
[ 74.244435] snd_pcm_hw_params+0xf8/0x3f8
[ 74.248492] snd_pcm_ioctl_hw_params_compat+0x148/0x288
[ 74.253769] snd_pcm_ioctl_compat+0x764/0x8c8
[ 74.258178] __arm64_compat_sys_ioctl+0xf4/0x110
[ 74.262850] el0_svc_common.constprop.2+0x78/0x188
[ 74.267698] do_el0_svc_compat+0x2c/0x38
[ 74.271666] el0_sync_compat_handler+0x130/0x180
[ 74.276334] el0_sync_compat+0x144/0x180
[ 74.280306] Code: 12000400 7100041f 54002120 f9403420 (f9400802)
[ 74.286464] ---[ end trace 3c2126d28e1f9af7 ]---
[ 74.291131] Kernel panic - not syncing: Fatal exception
Fixes: 9cb7ec3e9b ("ANDROID: ASoC: core - add hostless DAI support")
Change-Id: Ib7addfee4ac7382824fcc12057b93a956e6ae5f4
Signed-off-by: John Stultz <john.stultz@linaro.org>