Module Name: src Committed By: dyoung Date: Mon Apr 4 20:37:57 UTC 2011
Modified Files: src/sys/arch/alpha/include: pci_machdep.h src/sys/arch/alpha/pci: pci_1000.c pci_1000a.c pci_2100_a50.c pci_2100_a500.c pci_550.c pci_6600.c pci_alphabook1.c pci_axppci_33.c pci_eb164.c pci_eb64plus.c pci_eb66.c pci_kn20aa.c pci_kn300.c pci_kn8ae.c pci_up1000.c pciide_machdep.c src/sys/arch/arc/include: pci_machdep.h src/sys/arch/arc/pci: necpb.c src/sys/arch/arm/footbridge: footbridge_pci.c src/sys/arch/arm/gemini: gemini_pci.c src/sys/arch/arm/include: pci_machdep.h src/sys/arch/arm/marvell: pci_machdep.c src/sys/arch/arm/s3c2xx0: s3c2800_pci.c src/sys/arch/arm/xscale: becc_pci.c src/sys/arch/atari/include: pci_machdep.h src/sys/arch/atari/pci: pci_machdep.c pciide_machdep.c src/sys/arch/cats/pci: pciide_machdep.c src/sys/arch/cobalt/include: pci_machdep.h src/sys/arch/cobalt/pci: pci_machdep.c pciide_machdep.c src/sys/arch/evbarm/cp3100: cp3100_pci.c src/sys/arch/evbarm/hdl_g: hdlg_pci.c src/sys/arch/evbarm/ifpga: ifpga_pci.c src/sys/arch/evbarm/iq31244: iq31244_pci.c src/sys/arch/evbarm/iq80310: iq80310_pci.c src/sys/arch/evbarm/iq80321: iq80321_pci.c src/sys/arch/evbarm/ixdp425: ixdp425_pci.c src/sys/arch/evbarm/ixm1200: ixm1200_pci.c src/sys/arch/evbarm/npwr_fc: npwr_fc_pci.c src/sys/arch/evbarm/nslu2: nslu2_pci.c src/sys/arch/evbmips/alchemy: board.h dbau1500.c dbau1550.c machdep.c mtx-1.c omsal400.c pciide_machdep.c src/sys/arch/evbmips/malta: malta_intr.c src/sys/arch/evbmips/malta/pci: pciide_machdep.c src/sys/arch/evbppc/include: pmppc_pci_machdep.h src/sys/arch/evbppc/obs405: obs200_machdep.c obs266_machdep.c src/sys/arch/evbppc/pmppc/pci: pci_machdep.c src/sys/arch/evbppc/walnut: machdep.c src/sys/arch/hp700/dev: apic.c dino.c elroyvar.h src/sys/arch/hp700/include: pci_machdep.h src/sys/arch/i386/pci: gcscide.c piixpcib.c src/sys/arch/mips/adm5120/dev: admpci.c src/sys/arch/mips/alchemy/dev: aupcivar.h src/sys/arch/mips/include: pci_machdep.h src/sys/arch/mips/rmi: rmixl_pcie.c rmixl_pcix.c src/sys/arch/netwinder/pci: pciide_machdep.c src/sys/arch/powerpc/booke/pci: pq3pci.c src/sys/arch/powerpc/include: pci_machdep.h src/sys/arch/powerpc/include/ibm4xx: pci_machdep.h src/sys/arch/powerpc/pci: pci_machdep_common.c pci_machdep_ofw.c src/sys/arch/prep/include: pci_machdep.h src/sys/arch/prep/pci: pci_machdep.c src/sys/arch/sandpoint/include: pci_machdep.h src/sys/arch/sandpoint/pci: pci_machdep.c pciide_machdep.c src/sys/arch/sparc/include: pci_machdep.h src/sys/arch/sparc/sparc: pci_machdep.c src/sys/arch/sparc64/dev: pci_machdep.c psycho.c pyro.c schizo.c src/sys/arch/sparc64/include: pci_machdep.h src/sys/arch/x86/acpi: acpi_cpu_md.c src/sys/arch/x86/include: pci_machdep_common.h src/sys/arch/x86/pci: ichlpcib.c pci_intr_machdep.c pciide_machdep.c src/sys/arch/xen/include: pci_machdep.h src/sys/arch/xen/xen: pci_intr_machdep.c pciide_machdep.c xpci_xenbus.c src/sys/dev/marvell: mvpex.c mvpexvar.h src/sys/dev/pci: acardide.c aceride.c agp.c agp_i810.c agp_intel.c artsata.c cmdide.c cs4280.c cypide.c ehci_pci.c geodeide.c hptide.c iteide.c ixpide.c jmide.c nside.c optiide.c pci.c pci_map.c pciide_common.c pciidevar.h pcivar.h pdcide.c pdcsata.c piixide.c rccide.c satalink.c schide.c siside.c slide.c stpcide.c svwsata.c toshide.c viaide.c src/sys/external/bsd/drm/dist/bsd-core: mga_drv.c Log Message: Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9), pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match predicate passed to pciide_compat_intr_establish() should ever modify their pci_attach_args argument, so make their pci_attach_args arguments const and deal with the fallout throughout the kernel. For the most part, these changes add a 'const' where there was no 'const' before, however, some drivers and MD code used to modify pci_attach_args. Now those drivers either copy their pci_attach_args and modify the copy, or refrain from modifying pci_attach_args: Xen: according to Manuel Bouyer, writing to pci_attach_args in pci_intr_map() was a leftover from Xen 2. Probably a bug. I stopped writing it. I have not tested this change. siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args. Probably a bug. I use a temporary variable. I have not tested this change. slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args. Probably a bug. Use a local pci_attach_args. I have not tested this change. viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the caller's pci_attach_args. Probably a bug. Make a local copy of the caller's pci_attach_args and modify the copy. I have not tested this change. While I'm here, make pci_mapreg_submap() static. With these changes in place, I have tested the compilation of these kernels: alpha GENERIC amd64 GENERIC XEN3_DOM0 arc GENERIC atari HADES MILAN-PCIIDE bebox GENERIC cats GENERIC cobalt GENERIC evbarm-eb NSLU2 evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200 KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425 evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3 evbmips64-el XLSATX evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266 OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT hp700 GENERIC i386 ALL XEN3_DOM0 XEN3_DOMU ibmnws GENERIC macppc GENERIC mvmeppc GENERIC netwinder GENERIC ofppc GENERIC prep GENERIC sandpoint GENERIC sgimips GENERIC32_IP2x sparc GENERIC_SUN4U KRUPS sparc64 GENERIC As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels with or without my patches in place: ### evbmips-el GDIUM nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop ### evbarm-el MPCSA_GENERIC src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc' ### ia64 GENERIC /tmp/genassym.28085/assym.c: In function 'f111': /tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb' /tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type ### sgimips GENERIC32_IP3x crmfb.o: In function `crmfb_attach': crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid' crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid' crmfb.c:(.text+0x234c): undefined reference to `edid_parse' crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse' crmfb.c:(.text+0x2354): undefined reference to `edid_print' crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print' To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/alpha/include/pci_machdep.h cvs rdiff -u -r1.22 -r1.23 src/sys/arch/alpha/pci/pci_1000.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/alpha/pci/pci_1000a.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/alpha/pci/pci_2100_a50.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/alpha/pci/pci_2100_a500.c cvs rdiff -u -r1.33 -r1.34 src/sys/arch/alpha/pci/pci_550.c \ src/sys/arch/alpha/pci/pci_kn300.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/alpha/pci/pci_6600.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/alpha/pci/pci_alphabook1.c cvs rdiff -u -r1.34 -r1.35 src/sys/arch/alpha/pci/pci_axppci_33.c cvs rdiff -u -r1.41 -r1.42 src/sys/arch/alpha/pci/pci_eb164.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/alpha/pci/pci_eb64plus.c \ src/sys/arch/alpha/pci/pci_eb66.c cvs rdiff -u -r1.51 -r1.52 src/sys/arch/alpha/pci/pci_kn20aa.c cvs rdiff -u -r1.25 -r1.26 src/sys/arch/alpha/pci/pci_kn8ae.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/alpha/pci/pci_up1000.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/alpha/pci/pciide_machdep.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arc/include/pci_machdep.h cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arc/pci/necpb.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/footbridge/footbridge_pci.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/gemini/gemini_pci.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/include/pci_machdep.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/marvell/pci_machdep.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/s3c2xx0/s3c2800_pci.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/xscale/becc_pci.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/atari/include/pci_machdep.h cvs rdiff -u -r1.48 -r1.49 src/sys/arch/atari/pci/pci_machdep.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/atari/pci/pciide_machdep.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/cats/pci/pciide_machdep.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/cobalt/include/pci_machdep.h cvs rdiff -u -r1.28 -r1.29 src/sys/arch/cobalt/pci/pci_machdep.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/cobalt/pci/pciide_machdep.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/cp3100/cp3100_pci.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/hdl_g/hdlg_pci.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/evbarm/ifpga/ifpga_pci.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbarm/iq31244/iq31244_pci.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbarm/iq80310/iq80310_pci.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbarm/iq80321/iq80321_pci.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbarm/ixdp425/ixdp425_pci.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/ixm1200/ixm1200_pci.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/npwr_fc/npwr_fc_pci.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/evbarm/nslu2/nslu2_pci.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbmips/alchemy/board.h \ src/sys/arch/evbmips/alchemy/dbau1500.c \ src/sys/arch/evbmips/alchemy/mtx-1.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbmips/alchemy/dbau1550.c cvs rdiff -u -r1.49 -r1.50 src/sys/arch/evbmips/alchemy/machdep.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbmips/alchemy/omsal400.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbmips/alchemy/pciide_machdep.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/evbmips/malta/malta_intr.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbmips/malta/pci/pciide_machdep.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbppc/include/pmppc_pci_machdep.h cvs rdiff -u -r1.13 -r1.14 src/sys/arch/evbppc/obs405/obs200_machdep.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/evbppc/obs405/obs266_machdep.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbppc/pmppc/pci/pci_machdep.c cvs rdiff -u -r1.47 -r1.48 src/sys/arch/evbppc/walnut/machdep.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/hp700/dev/apic.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/hp700/dev/dino.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/hp700/dev/elroyvar.h cvs rdiff -u -r1.4 -r1.5 src/sys/arch/hp700/include/pci_machdep.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/i386/pci/gcscide.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/i386/pci/piixpcib.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/adm5120/dev/admpci.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/alchemy/dev/aupcivar.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/mips/include/pci_machdep.h cvs rdiff -u -r1.3 -r1.4 src/sys/arch/mips/rmi/rmixl_pcie.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/mips/rmi/rmixl_pcix.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/netwinder/pci/pciide_machdep.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/booke/pci/pq3pci.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/powerpc/include/pci_machdep.h cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/include/ibm4xx/pci_machdep.h cvs rdiff -u -r1.9 -r1.10 src/sys/arch/powerpc/pci/pci_machdep_common.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/powerpc/pci/pci_machdep_ofw.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/prep/include/pci_machdep.h cvs rdiff -u -r1.33 -r1.34 src/sys/arch/prep/pci/pci_machdep.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sandpoint/include/pci_machdep.h cvs rdiff -u -r1.25 -r1.26 src/sys/arch/sandpoint/pci/pci_machdep.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/sandpoint/pci/pciide_machdep.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sparc/include/pci_machdep.h cvs rdiff -u -r1.14 -r1.15 src/sys/arch/sparc/sparc/pci_machdep.c cvs rdiff -u -r1.70 -r1.71 src/sys/arch/sparc64/dev/pci_machdep.c cvs rdiff -u -r1.104 -r1.105 src/sys/arch/sparc64/dev/psycho.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/sparc64/dev/pyro.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/sparc64/dev/schizo.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/sparc64/include/pci_machdep.h cvs rdiff -u -r1.57 -r1.58 src/sys/arch/x86/acpi/acpi_cpu_md.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/x86/include/pci_machdep_common.h cvs rdiff -u -r1.28 -r1.29 src/sys/arch/x86/pci/ichlpcib.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/x86/pci/pci_intr_machdep.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/x86/pci/pciide_machdep.c cvs rdiff -u -r1.17 -r1.18 src/sys/arch/xen/include/pci_machdep.h cvs rdiff -u -r1.13 -r1.14 src/sys/arch/xen/xen/pci_intr_machdep.c cvs rdiff -u -r1.17 -r1.18 src/sys/arch/xen/xen/pciide_machdep.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/xen/xen/xpci_xenbus.c cvs rdiff -u -r1.3 -r1.4 src/sys/dev/marvell/mvpex.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/marvell/mvpexvar.h cvs rdiff -u -r1.24 -r1.25 src/sys/dev/pci/acardide.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/pci/aceride.c cvs rdiff -u -r1.78 -r1.79 src/sys/dev/pci/agp.c cvs rdiff -u -r1.72 -r1.73 src/sys/dev/pci/agp_i810.c cvs rdiff -u -r1.36 -r1.37 src/sys/dev/pci/agp_intel.c cvs rdiff -u -r1.20 -r1.21 src/sys/dev/pci/artsata.c src/sys/dev/pci/rccide.c \ src/sys/dev/pci/stpcide.c cvs rdiff -u -r1.31 -r1.32 src/sys/dev/pci/cmdide.c cvs rdiff -u -r1.60 -r1.61 src/sys/dev/pci/cs4280.c cvs rdiff -u -r1.23 -r1.24 src/sys/dev/pci/cypide.c cvs rdiff -u -r1.50 -r1.51 src/sys/dev/pci/ehci_pci.c cvs rdiff -u -r1.18 -r1.19 src/sys/dev/pci/geodeide.c \ src/sys/dev/pci/ixpide.c src/sys/dev/pci/optiide.c cvs rdiff -u -r1.27 -r1.28 src/sys/dev/pci/hptide.c src/sys/dev/pci/pci_map.c cvs rdiff -u -r1.11 -r1.12 src/sys/dev/pci/iteide.c cvs rdiff -u -r1.9 -r1.10 src/sys/dev/pci/jmide.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/pci/nside.c src/sys/dev/pci/schide.c cvs rdiff -u -r1.135 -r1.136 src/sys/dev/pci/pci.c cvs rdiff -u -r1.48 -r1.49 src/sys/dev/pci/pciide_common.c cvs rdiff -u -r1.42 -r1.43 src/sys/dev/pci/pciidevar.h \ src/sys/dev/pci/satalink.c cvs rdiff -u -r1.91 -r1.92 src/sys/dev/pci/pcivar.h cvs rdiff -u -r1.28 -r1.29 src/sys/dev/pci/pdcide.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/pdcsata.c cvs rdiff -u -r1.56 -r1.57 src/sys/dev/pci/piixide.c cvs rdiff -u -r1.26 -r1.27 src/sys/dev/pci/siside.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/slide.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/pci/svwsata.c cvs rdiff -u -r1.3 -r1.4 src/sys/dev/pci/toshide.c cvs rdiff -u -r1.71 -r1.72 src/sys/dev/pci/viaide.c cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm/dist/bsd-core/mga_drv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.