On 10/30/18 7:50 AM, Rohit Kumar wrote:
Hi,
We are facing crash in hdmi codec driver when we use DPCM based
dai-links. Crash is happening in hdmi_codec_eld_chmap() while accessing
chmap_info struct during hdmi_codec_startup(). However, chmap_info
struct is allocated in hdmi_codec_pcm_new() which is only called in
non-DPCM based dai-links.
Below is the crash stack:
[61.635493] Unable to handle kernel NULL pointer dereference at virtual
address 00000018
.....
[61.666696]CM = 0, WnR = 1
[61.669778] user pgtable: 4k pages, 39-bit VAs, pgd = ffffffc0d6633000
[61.676526] [0000000000000018] *pgd=0000000153fc8003,
*pud=0000000153fc8003, *pmd=0000000000000000
[61.685793] Internal error: Oops: 96000046 [#1] PREEMPT SMP
[61.722955] CPU: 7 PID: 2238 Comm: aplay Not tainted 4.14.72 #21
..
[61.740269] PC is at hdmi_codec_startup+0x124/0x164
[61.745308] LR is at hdmi_codec_startup+0xe4/0x164
..
We would probably need to move the implementation on pcm_new() to some
other function to make it compatible with DPCM.
Can you please provide suggestions in solving the issue.
In my opinion, it is not responsibility of driver to speculate whether
the ops it exposes would only be called under certain usage (non-DPCM in
this case). I think ASoC framework should be updated to call pcm_new()
of each driver even though no actual PCM device would be created for
backend dailink.
Thanks,
Rohit
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel