Author: sbruno
Date: Thu Apr  6 19:13:40 2017
New Revision: 316588
URL: https://svnweb.freebsd.org/changeset/base/316588

Log:
  Direct commit of fixes to stable/10, resolving PCI passthrough and 
initialization
  issues when trying to passthrough a i340 (igb) to VMware.
  
  While here, cleanup some bits of em(4) to DTRT as well.
  
  PR:           218113
  Submitted by: Kaho Toshikazu <k...@elam.kais.kyoto-u.ac.jp>

Modified:
  stable/10/sys/dev/e1000/if_em.c
  stable/10/sys/dev/e1000/if_em.h
  stable/10/sys/dev/e1000/if_igb.c

Modified: stable/10/sys/dev/e1000/if_em.c
==============================================================================
--- stable/10/sys/dev/e1000/if_em.c     Thu Apr  6 19:10:16 2017        
(r316587)
+++ stable/10/sys/dev/e1000/if_em.c     Thu Apr  6 19:13:40 2017        
(r316588)
@@ -2846,7 +2846,7 @@ em_free_pci_resources(struct adapter *ad
 
        if (adapter->msix_mem != NULL)
                bus_release_resource(dev, SYS_RES_MEMORY,
-                   PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem);
+                   adapter->memrid, adapter->msix_mem);
 
        if (adapter->memory != NULL)
                bus_release_resource(dev, SYS_RES_MEMORY,
@@ -2880,9 +2880,9 @@ em_setup_msix(struct adapter *adapter)
                        em_enable_vectors_82574(adapter);
 #endif
                /* Map the MSIX BAR */
-               int rid = PCIR_BAR(EM_MSIX_BAR);
+               adapter->memrid = PCIR_BAR(EM_MSIX_BAR);
                adapter->msix_mem = bus_alloc_resource_any(dev,
-                   SYS_RES_MEMORY, &rid, RF_ACTIVE);
+                   SYS_RES_MEMORY, &adapter->memrid, RF_ACTIVE);
                        if (adapter->msix_mem == NULL) {
                        /* May not be enabled */
                                device_printf(adapter->dev,
@@ -2933,7 +2933,7 @@ msix_one:
 msi:
        if (adapter->msix_mem != NULL) {
                bus_release_resource(dev, SYS_RES_MEMORY,
-                   PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem);
+                   adapter->memrid, adapter->msix_mem);
                adapter->msix_mem = NULL;
        }
                val = 1;

Modified: stable/10/sys/dev/e1000/if_em.h
==============================================================================
--- stable/10/sys/dev/e1000/if_em.h     Thu Apr  6 19:10:16 2017        
(r316587)
+++ stable/10/sys/dev/e1000/if_em.h     Thu Apr  6 19:13:40 2017        
(r316588)
@@ -400,6 +400,7 @@ struct adapter {
        struct resource *memory;
        struct resource *flash;
        struct resource *msix_mem;
+       int             memrid;
 
        struct resource *res;
        void            *tag;

Modified: stable/10/sys/dev/e1000/if_igb.c
==============================================================================
--- stable/10/sys/dev/e1000/if_igb.c    Thu Apr  6 19:10:16 2017        
(r316587)
+++ stable/10/sys/dev/e1000/if_igb.c    Thu Apr  6 19:13:40 2017        
(r316588)
@@ -2806,7 +2806,7 @@ igb_setup_msix(struct adapter *adapter)
 msi:
                if (adapter->msix_mem != NULL) {
                bus_release_resource(dev, SYS_RES_MEMORY,
-                   PCIR_BAR(IGB_MSIX_BAR), adapter->msix_mem);
+                   adapter->memrid, adapter->msix_mem);
                adapter->msix_mem = NULL;
        }
                msgs = 1;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to