[alsa-devel] Bug in hdmi codec driver in DPCM

Rohit Kumar rohitkr at codeaurora.org
Wed Oct 31 11:22:19 CET 2018


On 10/31/2018 3:55 AM, Patrick Lai wrote:
> 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 Patrick for the response. In that case, we should avoid no_pcm
check before calling pcm_new() in soc_link_dai_pcm_new().
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/soc-core.c?h=v4.19#n1413

Mark, Can you please provide your opinion for the same.
>>
>> Thanks,
>>
>> Rohit
>
>

-- 
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member
of the Code Aurora Forum, hosted by the Linux Foundation.



More information about the Alsa-devel mailing list