Re: [BUG] NULL pointer dereference in patch_sigmatel.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Fri, 07 Aug 2009 16:39:19 +0300,Ozan Çağlayan wrote:> > Takashi Iwai wrote On 07-08-2009 13:49:> > At Fri, 07 Aug 2009 13:36:46 +0300,> > Ozan Çağlayan wrote:> >   > >> Takashi Iwai wrote On 07-08-2009 12:56:> >>     > >>> At Fri, 7 Aug 2009 10:43:07 +0100,> >>> James Courtier-Dutton wrote:> >>>   > >>>       > >>>> 2009/8/7 Ozan Çağlayan <ozan@xxxxxxxxxxxxx>:> >>>>     > >>>>         > >>>>> Added the following lines:> >>>>>> >>>>> printk(KERN_INFO "0x%p\n", jack);> >>>>> printk(KERN_INFO "0x%p\n", jack->jack);> >>>>> printk(KERN_INFO "0x%p\n", jack->jack->private_data);> >>>>>> >>>>> dmesg:> >>>>>> >>>>> NVRM: loading NVIDIA UNIX x86 Kernel Module  180.51  Thu Apr 16 19:02:15> >>>>> PDT 2009> >>>>> ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 22> >>>>> PCI: Setting latency timer of device 0000:00:1b.0 to 64> >>>>> 0xf777a614> >>>>> 0x00000000> >>>>> BUG: unable to handle kernel NULL pointer dereference at 00000074> >>>>> IP: [<f93f2d97>] :snd_hda_codec_conexant:conexant_add_jack+0x57/0x81> >>>>> *pde = 00000000·> >>>>> Oops: 0000 [#1] SMP> >>>>>> >>>>>       > >>>>>           > >>>> Need more of the dmesg output.> >>>> I.e. to see which print statements succeeded.> >>>> Alternatively, attach the snd_hda.ko so one can see where in that file> >>>> offset 0x57 is.> >>>> But a more useful print would be:> >>>> if (!jack) printk(KERN_INFO "jack null\n");> >>>> else if (!(jack->jack)) printk(KERN_INFO "jack->jack null\n");> >>>> else if (!(jack->jack->private_data)) printk(KERN_INFO> >>>> "jack->jack->private_data null\n");> >>>>     > >>>>         > >>> Well, it's fairly obvious that jack->jack is NULL as the second> >>> output is NULL, and the third one hits Oops.> >>>> >>> Ozan, could you check whether CONFIG_SND_JACK is set in> >>> stac92xx_add_jack, e.g. like below?> >>>> >>>   > >>>       > >> Nope it seems that it's not set as the #error pragma is executed. I> >> looked into the configure script and found the following:> >>> >>   if alsa_check_kconfig_option "hda-input-jack"; then> >>     if ( test "$CONFIG_SND_PCI" = "y" -o "$CONFIG_SND_PCI" = "m" ) &&> >>       ( test "$CONFIG_SND_HDA_INTEL" = "y" -o "$CONFIG_SND_HDA_INTEL" => >> "m" ) &&> >>       ( test "$CONFIG_INPUT" = "y" -o "$CONFIG_INPUT" = "m" ); then> >>       test "$kversion.$kpatchlevel" = "2.6" -a $ksublevel -ge 27 &&> >> CONFIG_SND_JACK="y"> >>       CONFIG_SND_HDA_INPUT_JACK="y"> >>   fi> >>> >> SND_JACK is set if sublevel >= 27 but SND_HDA_INPUT_JACK is set> >> regardless of anything. Why the lower limit is 27 for that functionality?> >>     > >> > Because of kernel API change, it can't be built with older kernels.> >> > The patch below should fix the problem.  Give it a try.> >> >   > The patch below doesn't undef CONFIG_SND_HDA_INPUT_JACK after> configuring. Actually there are config1.h* and config.h* and both> contains def/undefs for *JACK* stuff. But I'll undefine it after> configure and then compile to see it the error goes.
Yeah I realized it, now fixed alsa-driver GIT tree to undef inadriver.h instead.

Takashi_______________________________________________Alsa-devel mailing listAlsa-devel@xxxxxxxxxxxxxxxxxxxx://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux