socsvn commit: r304516 - soc2016/vincenzo/head/sys/dev/netmap
vincenzo at FreeBSD.org
vincenzo at FreeBSD.org
Fri Jun 3 14:09:05 UTC 2016
Author: vincenzo
Date: Fri Jun 3 14:09:03 2016
New Revision: 304516
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=304516
Log:
freebsd: ptnet: initialize driver netmap adapter
Modified:
soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c
Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c
==============================================================================
--- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 3 14:08:33 2016 (r304515)
+++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 3 14:09:03 2016 (r304516)
@@ -359,7 +359,15 @@
sc->ptna_nm = (struct netmap_pt_guest_adapter *)NA(ifp);
sc->ptna_nm->csb = sc->csb;
+ /* Initialize a separate pass-through netmap adapter that is going to
+ * be used by this driver only, and so never exposed to netmap. We
+ * only need a subset of the available fields. */
memset(&sc->ptna_dr, 0, sizeof(sc->ptna_dr));
+ sc->ptna_dr.hwup.up.ifp = ifp;
+ sc->ptna_dr.hwup.up.nm_mem = sc->ptna_nm->hwup.up.nm_mem;
+ netmap_mem_get(sc->ptna_dr.hwup.up.nm_mem);
+ sc->ptna_dr.hwup.up.nm_config = ptnet_nm_config;
+ sc->ptna_dr.csb = sc->csb;
return (0);
@@ -378,6 +386,9 @@
if (sc->ifp) {
ether_ifdetach(sc->ifp);
+ /* Uninitialize netmap adapters for this device. */
+ netmap_mem_put(sc->ptna_dr.hwup.up.nm_mem);
+ memset(&sc->ptna_dr, 0, sizeof(sc->ptna_dr));
netmap_detach(sc->ifp);
ifmedia_removeall(&sc->media);
More information about the svn-soc-all
mailing list