Author: avg
Date: Sun Nov  1 18:40:03 2009
New Revision: 198770
URL: http://svn.freebsd.org/changeset/base/198770

Log:
  MFC 197450: number of cleanups in i386 and amd64 pci md code

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/amd64/pci/pci_cfgreg.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/pci/pcireg.h
  stable/7/sys/i386/pci/pci_cfgreg.c

Modified: stable/7/sys/amd64/pci/pci_cfgreg.c
==============================================================================
--- stable/7/sys/amd64/pci/pci_cfgreg.c Sun Nov  1 18:39:26 2009        
(r198769)
+++ stable/7/sys/amd64/pci/pci_cfgreg.c Sun Nov  1 18:40:03 2009        
(r198770)
@@ -181,9 +181,9 @@ pci_cfgenable(unsigned bus, unsigned slo
 {
        int dataport = 0;
 
-       if (bus <= PCI_BUSMAX && slot < 32 && func <= PCI_FUNCMAX &&
-           reg <= PCI_REGMAX && bytes != 3 && (unsigned) bytes <= 4 &&
-           (reg & (bytes - 1)) == 0) {
+       if (bus <= PCI_BUSMAX && slot <= PCI_SLOTMAX && func <= PCI_FUNCMAX &&
+           (unsigned)reg <= PCI_REGMAX && bytes != 3 &&
+           (unsigned)bytes <= 4 && (reg & (bytes - 1)) == 0) {
                outl(CONF1_ADDR_PORT, (1 << 31) | (bus << 16) | (slot << 11) 
                    | (func << 8) | (reg & ~0x03));
                dataport = CONF1_DATA_PORT + (reg & 0x03);
@@ -281,7 +281,7 @@ pcie_cfgregopen(uint64_t base, uint8_t m
         * fall back to using type 1 config access instead.
         */
        if (pci_cfgregopen() != 0) {
-               for (slot = 0; slot < 32; slot++) {
+               for (slot = 0; slot <= PCI_SLOTMAX; slot++) {
                        val1 = pcireg_cfgread(0, slot, 0, 0, 4);
                        if (val1 == 0xffffffff)
                                continue;
@@ -309,8 +309,8 @@ pciereg_cfgread(int bus, unsigned slot, 
        volatile vm_offset_t va;
        int data = -1;
 
-       if (bus < pcie_minbus || bus > pcie_maxbus || slot >= 32 ||
-           func > PCI_FUNCMAX || reg >= 0x1000)
+       if (bus < pcie_minbus || bus > pcie_maxbus || slot > PCI_SLOTMAX ||
+           func > PCI_FUNCMAX || reg > PCIE_REGMAX)
                return (-1);
 
        va = PCIE_VADDR(pcie_base, reg, bus, slot, func);
@@ -336,8 +336,8 @@ pciereg_cfgwrite(int bus, unsigned slot,
 {
        volatile vm_offset_t va;
 
-       if (bus < pcie_minbus || bus > pcie_maxbus || slot >= 32 ||
-           func > PCI_FUNCMAX || reg >= 0x1000)
+       if (bus < pcie_minbus || bus > pcie_maxbus || slot > PCI_SLOTMAX ||
+           func > PCI_FUNCMAX || reg > PCIE_REGMAX)
                return;
 
        va = PCIE_VADDR(pcie_base, reg, bus, slot, func);

Modified: stable/7/sys/dev/pci/pcireg.h
==============================================================================
--- stable/7/sys/dev/pci/pcireg.h       Sun Nov  1 18:39:26 2009        
(r198769)
+++ stable/7/sys/dev/pci/pcireg.h       Sun Nov  1 18:40:03 2009        
(r198770)
@@ -44,6 +44,7 @@
 #define        PCI_SLOTMAX     31      /* highest supported slot number */
 #define        PCI_FUNCMAX     7       /* highest supported function number */
 #define        PCI_REGMAX      255     /* highest supported config register 
addr. */
+#define        PCIE_REGMAX     4095    /* highest supported config register 
addr. */
 #define        PCI_MAXHDRTYPE  2
 
 /* PCI config header registers for all devices */

Modified: stable/7/sys/i386/pci/pci_cfgreg.c
==============================================================================
--- stable/7/sys/i386/pci/pci_cfgreg.c  Sun Nov  1 18:39:26 2009        
(r198769)
+++ stable/7/sys/i386/pci/pci_cfgreg.c  Sun Nov  1 18:40:03 2009        
(r198770)
@@ -291,9 +291,9 @@ pci_cfgenable(unsigned bus, unsigned slo
        if (bus <= PCI_BUSMAX
            && slot < devmax
            && func <= PCI_FUNCMAX
-           && reg <= PCI_REGMAX
+           && (unsigned)reg <= PCI_REGMAX
            && bytes != 3
-           && (unsigned) bytes <= 4
+           && (unsigned)bytes <= 4
            && (reg & (bytes - 1)) == 0) {
                switch (cfgmech) {
                case CFGMECH_PCIE:
@@ -586,7 +586,7 @@ pcie_cfgregopen(uint64_t base, uint8_t m
         * fall back to using type 1 config access instead.
         */
        if (pci_cfgregopen() != 0) {
-               for (slot = 0; slot < 32; slot++) {
+               for (slot = 0; slot <= PCI_SLOTMAX; slot++) {
                        val1 = pcireg_cfgread(0, slot, 0, 0, 4);
                        if (val1 == 0xffffffff)
                                continue;
@@ -651,8 +651,8 @@ pciereg_cfgread(int bus, unsigned slot, 
        vm_paddr_t pa, papage;
        int data = -1;
 
-       if (bus < pcie_minbus || bus > pcie_maxbus || slot >= 32 ||
-           func > PCI_FUNCMAX || reg >= 0x1000 || bytes > 4 || bytes == 3)
+       if (bus < pcie_minbus || bus > pcie_maxbus || slot > PCI_SLOTMAX ||
+           func > PCI_FUNCMAX || reg > PCIE_REGMAX)
                return (-1);
 
        critical_enter();
@@ -685,8 +685,8 @@ pciereg_cfgwrite(int bus, unsigned slot,
        volatile vm_offset_t va;
        vm_paddr_t pa, papage;
 
-       if (bus < pcie_minbus || bus > pcie_maxbus || slot >= 32 ||
-           func > PCI_FUNCMAX || reg >= 0x1000)
+       if (bus < pcie_minbus || bus > pcie_maxbus || slot > PCI_SLOTMAX ||
+           func > PCI_FUNCMAX || reg > PCIE_REGMAX)
                return;
 
        critical_enter();
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to