Hello Rohit, On 11/2/18 1:06 PM, Rohit Kumar wrote: > > On 11/2/2018 1:12 PM, Takashi Iwai wrote: >> On Thu, 01 Nov 2018 13:38:49 +0100, >> Rohit kumar wrote: >>> Remove no_pcm check to invoke pcm_new() for backend dai-links >>> too. This fixes crash in hdmi codec driver during hdmi_codec_startup() >>> while accessing chmap_info struct. chmap_info struct memory is >>> allocated in pcm_new() of hdmi codec driver which is not invoked >>> in case of DPCM when hdmi codec driver is part of backend dai-link. >>> >>> 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 >>> >>> Signed-off-by: Rohit kumar <rohitkr@xxxxxxxxxxxxxx> >> Did you check whether all drivers have no side-effect by this change? >> The hdmi-codec isn't the only driver that has pcm_new ops, so we have >> to make sure that such a fundamental change wouldn't bring any >> regressions. >> > Below are the drivers calling pcm_new() other than hdmi codec driver. > sound/soc/meson/axg-frddr.c > sound/soc/meson/axg-toddr.c > These two drivers are frontend DAI drivers and should not be impacted > because of this. > > Other than this, pcm_new() is called from sound/soc/stm/stm32_sai_sub.c > I could not get much info about this driver. However, it is just adding > kcontrols in pcm_new() which uses internal private structs in get()/put(). > Olivier Moysan can too confirm on this. First, i'm answering for Olivier: no regression identified for the SAI driver, it is not a DPCM driver. Then i have a concern about the call of pcm_new for a no-PCM backend. Does it make sense? In DPCM concept, the backend is not linked to the PCM device... Instead, I would suggest that you add protection in HDMI_codec on chmap_info pointer. The drawback would be that the control is no more available...do you need it? Regards Arnaud > > Thanks, > Rohit >> thanks, >> >> Takashi > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel