From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751112AbWFFKPx (ORCPT ); Tue, 6 Jun 2006 06:15:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751123AbWFFKPx (ORCPT ); Tue, 6 Jun 2006 06:15:53 -0400 Received: from mx2.suse.de ([195.135.220.15]:35716 "EHLO mx2.suse.de") by vger.kernel.org with ESMTP id S1751112AbWFFKPw (ORCPT ); Tue, 6 Jun 2006 06:15:52 -0400 Date: Tue, 06 Jun 2006 12:15:48 +0200 Message-ID: From: Takashi Iwai To: Andrew Morton Cc: Dave Jones , linux-kernel@vger.kernel.org, Jaroslav Kysela Subject: Re: 2.6.17-rc5-mm3 In-Reply-To: <20060605130626.3f2917a2.akpm@osdl.org> References: <20060603232004.68c4e1e3.akpm@osdl.org> <20060605194844.GA6143@redhat.com> <20060605130626.3f2917a2.akpm@osdl.org> User-Agent: Wanderlust/2.12.0 (Your Wildest Dreams) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 MULE XEmacs/21.5 (beta25) (eggplant) (+CVS-20060326) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org At Mon, 5 Jun 2006 13:06:26 -0700, Andrew Morton wrote: > > On Mon, 5 Jun 2006 15:48:45 -0400 > Dave Jones wrote: > > > On Sat, Jun 03, 2006 at 11:20:04PM -0700, Andrew Morton wrote: > > > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm3/ > > > > > > - Lots of PCI and USB updates > > > > > > - The various lock validator, stack backtracing and IRQ management problems > > > are converging, but we're not quite there yet. > > > > Thought I'd try my bi-annual "poke at -mm". Results were less > > than spectacular. > > > > http://www.codemonkey.org.uk/junk/DSC00347.JPG > > First the sound driver oopsed. > > That's a bug in sound/pci/cs4281.c. > > There's a debug patch in -mm > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm3/broken-out/debug-shared-irqs.patch > which trips up drivers which request an IRQ before their IRQ handler is > ready to accept IRQs (they'll crash in real life if the IRQ is shared). I guess that the bug in cs4281 is ioremap too lately issued after the registration of irq handler. Does the patch below fix the problem? Takashi [PATCH] Fix possible Oops in cs4281 irq handler Call ioremap before request_irq for avoiding possible Oops in cs4281 driver. Signed-off-by: Takashi Iwai --- diff -r 84d14cbbd713 sound/pci/cs4281.c --- a/sound/pci/cs4281.c Fri Jun 02 09:15:44 2006 +0200 +++ b/sound/pci/cs4281.c Tue Jun 06 12:11:56 2006 +0200 @@ -1379,6 +1379,13 @@ static int __devinit snd_cs4281_create(s chip->ba0_addr = pci_resource_start(pci, 0); chip->ba1_addr = pci_resource_start(pci, 1); + chip->ba0 = ioremap_nocache(chip->ba0_addr, pci_resource_len(pci, 0)); + chip->ba1 = ioremap_nocache(chip->ba1_addr, pci_resource_len(pci, 1)); + if (!chip->ba0 || !chip->ba1) { + snd_cs4281_free(chip); + return -ENOMEM; + } + if (request_irq(pci->irq, snd_cs4281_interrupt, SA_INTERRUPT|SA_SHIRQ, "CS4281", chip)) { snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); @@ -1387,13 +1394,6 @@ static int __devinit snd_cs4281_create(s } chip->irq = pci->irq; - chip->ba0 = ioremap_nocache(chip->ba0_addr, pci_resource_len(pci, 0)); - chip->ba1 = ioremap_nocache(chip->ba1_addr, pci_resource_len(pci, 1)); - if (!chip->ba0 || !chip->ba1) { - snd_cs4281_free(chip); - return -ENOMEM; - } - tmp = snd_cs4281_chip_init(chip); if (tmp) { snd_cs4281_free(chip);