Date: Fri, 3 Jun 2016 14:09:04 GMT From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r304516 - soc2016/vincenzo/head/sys/dev/netmap Message-ID: <201606031409.u53E94BV060197@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606031409.u53E94BV060197>