Linus, Alan, et al. Here's a patch I'd like to see included in the 2.5 mainline. Some of the code in arch/i386/pci/direct.c is a bit ugly and definitely redundant. This patch cleans that up. I've tested in on PCI configuration 1 systems, but I haven't had a chance to test this on any systems that use PCI configuration 2. If anyone can do that, that would be awesome. [mcd@arrakis src]$ diffstat pci_fix-2531.patch direct.c | 158 +++++++++++++++++++-------------------------------------------- 1 files changed, 48 insertions(+), 110 deletions(-) The gist of the patch is that it move the indirection one layer down and saves about 60+ lines of code. Rather than having pci_conf{1|2}_{read|write}_config_{byte|word|dword}, this patch removes the 1/2 distinction by pushing that down a layer, and calling a generic pointer instead. That pointer is set at init time by the PCI init code. This pulls out 6 functions (pci_conf2_*) that were exact duplicates of the others (pci_conf1_*), but differed by 1 character each (s/conf1/conf2/). Linus, please apply... Cheers! -Matt