I've done some work on cleaning up the definitions of pci_device_id to make them "static const" (where possible) and to make sure they go into __devinitconst. There are about 350 changes of the type shown in the diff at the end of this mail.
All these changes are in my public GIT tree at: git://www.southpole.se/~jonas/git/linux.git (Based on 2.6.25-rc2) In addition to these pci_device_id changes, there are a few changesets that move "const" data from __devinitdata to __devinitconst. The tree above builds with both allmodconfig and allyesconfig. /Jonas ------ Representative example change: diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 4d59ae8..90c7820 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c @@ -4967,7 +4967,7 @@ megaraid_shutdown(struct pci_dev *pdev) __megaraid_shutdown(adapter); } -static struct pci_device_id megaraid_pci_tbl[] = { +static const struct pci_device_id megaraid_pci_tbl[] __devinitconst = { {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID2,
signature.asc
Description: This is a digitally signed message part