From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964888AbWGEPIT (ORCPT ); Wed, 5 Jul 2006 11:08:19 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964899AbWGEPIT (ORCPT ); Wed, 5 Jul 2006 11:08:19 -0400 Received: from mx1.suse.de ([195.135.220.2]:49850 "EHLO mx1.suse.de") by vger.kernel.org with ESMTP id S964888AbWGEPIT (ORCPT ); Wed, 5 Jul 2006 11:08:19 -0400 Date: Wed, 05 Jul 2006 17:08:09 +0200 Message-ID: From: Takashi Iwai To: Arjan van de Ven Cc: Karsten Keil , greg@kroah.com, Andrew Morton , Linus Torvalds , linux-kernel@vger.kernel.org Subject: Re: [PATCH] hisax fix usage of __init* In-Reply-To: <1152099459.3201.19.camel@laptopd505.fenrus.org> References: <20060705112357.GA7003@pingi.kke.suse.de> <1152099459.3201.19.camel@laptopd505.fenrus.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 Wed, 05 Jul 2006 13:37:38 +0200, Arjan van de Ven wrote: > > On Wed, 2006-07-05 at 13:23 +0200, Karsten Keil wrote: > > diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c > > index 5333be5..e103503 100644 > > --- a/drivers/isdn/hisax/config.c > > +++ b/drivers/isdn/hisax/config.c > > @@ -1875,7 +1875,7 @@ static void EChannel_proc_rcv(struct his > > #ifdef CONFIG_PCI > > #include > > > > -static struct pci_device_id hisax_pci_tbl[] __initdata = { > > +static struct pci_device_id hisax_pci_tbl[] __devinitdata = { > > #ifdef CONFIG_HISAX_FRITZPCI > > {PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, > > PCI_ANY_ID, PCI_ANY_ID}, > > #endif > > diff --git a/drivers > > I think this bit is still buggy; afaik pci_device_id tables should not > be of any kind of __init at all... CC'ing Greg just to make sure I'm not > talking rubbish I've been also debugging this since Andrew pointed me about a similar bug (sound/pci/maestro3.c). I actually got section mismatch errors when pci id table is defined with __devinitdata tag together with CONFIG_HOTPLUG=n, either at compile time or at link time. So, my conclusion is that no tags should be used for pci id table. Interestingly, Documentation/pci.txt mentions that __devinitdata _should_ be used: > Tips: > The module_init()/module_exit() functions (and all initialization > functions called only from these) should be marked __init/exit. > The struct pci_driver shouldn't be marked with any of these tags. > The ID table array should be marked __devinitdata. Takashi