Try the following diff, we only use the io space for a few
models so this will limit it to those.  Something like this
is also needed for at least 82580 as well.

Index: if_em.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em.c,v
retrieving revision 1.250
diff -u -p -r1.250 if_em.c
--- if_em.c     9 Mar 2011 12:24:15 -0000       1.250
+++ if_em.c     31 Mar 2011 07:54:32 -0000
@@ -1557,7 +1557,13 @@ em_allocate_pci_resources(struct em_soft
                return (ENXIO);
        }
 
-       if (sc->hw.mac_type > em_82543) {
+       switch (sc->hw.mac_type) {
+       case em_82544:
+       case em_82540:
+       case em_82545:
+       case em_82546:
+       case em_82541:
+       case em_82541_rev_2:
                /* Figure out where our I/O BAR is ? */
                for (rid = PCI_MAPREG_START; rid < PCI_MAPREG_END;) {
                        val = pci_conf_read(pa->pa_pc, pa->pa_tag, rid);
@@ -1579,6 +1585,9 @@ em_allocate_pci_resources(struct em_soft
                }
 
                sc->hw.io_base = 0;
+               break;
+       default:
+               break;
        }
 
        /* for ICH8 and family we need to find the flash memory */

Reply via email to