Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Ozan Çağlayan" <ozan@pardus.org.tr>
Cc: alsa-devel@alsa-project.org,
	James Courtier-Dutton <james.dutton@gmail.com>
Subject: Re: [BUG] NULL pointer dereference in patch_sigmatel.c
Date: Fri, 07 Aug 2009 12:49:34 +0200	[thread overview]
Message-ID: <s5hd477zyo1.wl%tiwai@suse.de> (raw)
In-Reply-To: <4A7C03BE.7040300@pardus.org.tr>

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@pardus.org.tr>:
> >>     
> >>> 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.


thanks,

Takashi

---
diff --git a/include/config.h.in b/include/config.h.in
index 5c7a96c..eefc0ee 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -88,3 +88,8 @@
 #undef CONFIG_HAVE_GFP_DMA32
 #undef CONFIG_HAVE_PAGE_TO_PFN
 #undef CONFIG_HAVE_VIDEO_DRVDATA
+
+/* hack - CONFIG_SND_HDA_INPUT_JACK can be wrongly set for older kernels */
+#ifndef CONFIG_SND_JACK
+#undef CONFIG_SND_HDA_INPUT_JACK
+#endif
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2009-08-07 10:49 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-16 19:51 [BUG] NULL pointer dereference in patch_sigmatel.c Ozan Çağlayan
2009-07-17  9:33 ` Takashi Iwai
2009-07-17  9:45   ` Takashi Iwai
2009-08-06 11:38     ` Ozan Çağlayan
2009-08-06 13:41     ` Ozan Çağlayan
2009-08-06 14:13       ` Takashi Iwai
2009-08-07  9:33         ` Ozan Çağlayan
2009-08-07  9:43           ` James Courtier-Dutton
2009-08-07  9:56             ` Takashi Iwai
2009-08-07 10:21               ` James Courtier-Dutton
2009-08-07 10:36               ` Ozan Çağlayan
2009-08-07 10:49                 ` Takashi Iwai [this message]
2009-08-07 13:39                   ` Ozan Çağlayan
2009-08-07 13:39                     ` Takashi Iwai
2009-08-09 12:10                       ` Ozan Çağlayan
2009-08-09 18:01                         ` Takashi Iwai
2009-08-09 23:02                           ` Ozan Çağlayan
2009-08-10  5:39                             ` Takashi Iwai
2009-08-10  5:48                               ` Takashi Iwai
2009-08-10  7:01                                 ` Ozan Çağlayan
2009-08-10  7:41                                   ` Takashi Iwai
2009-07-17  9:53   ` Ozan Çağlayan
2009-07-17 10:01     ` Takashi Iwai
2009-07-17 10:35       ` Ozan Çağlayan
2009-07-17 10:41         ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hd477zyo1.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=james.dutton@gmail.com \
    --cc=ozan@pardus.org.tr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox