On Thursday 25 October 2007 22:41, Bartlomiej Zolnierkiewicz wrote: > > -static const struct ide_port_info generic_chipsets[] __devinitdata = { > > +static struct ide_port_info generic_chipsets[] __devinitdata = { > > /* 0 */ DECLARE_GENERIC_PCI_DEV("Unknown", 0), > > > > { /* 1 */ > > I would prefer to not remove const from generic_chipsets[] so: > > [PATCH] drivers/ide/pci/generic: fix build for CONFIG_HOTPLUG=n > > It turns out that const and __{dev}initdata cannot be mixed currently > and that generic IDE PCI host driver is also affected by the same issue: > > On Thursday 25 October 2007, Ralf Baechle wrote: > > CC drivers/ide/pci/generic.o > > drivers/ide/pci/generic.c:52: error: __setup_str_ide_generic_all_on causes a > > +section type conflict > > [ Also reported by Martijn Uffing <mp3project@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>. ] > > This patch workarounds the problem in a bit hackish way but without > removing const from generic_chipsets[] (it adds const to __setup() so > __setup_str_ide_generic_all becomes const). You wouldn't believe how much const data is not marked as const because we don't have __constinitdata etc. Literally megabytes. -- vda