svn commit: r285698 - head/sys/dev/netmap
Luigi Rizzo
luigi at FreeBSD.org
Sun Jul 19 18:06:31 UTC 2015
Author: luigi
Date: Sun Jul 19 18:06:30 2015
New Revision: 285698
URL: https://svnweb.freebsd.org/changeset/base/285698
Log:
properly destroy persistent vale ports
Modified:
head/sys/dev/netmap/netmap_vale.c
Modified: head/sys/dev/netmap/netmap_vale.c
==============================================================================
--- head/sys/dev/netmap/netmap_vale.c Sun Jul 19 18:05:49 2015 (r285697)
+++ head/sys/dev/netmap/netmap_vale.c Sun Jul 19 18:06:30 2015 (r285698)
@@ -506,17 +506,6 @@ netmap_vp_dtor(struct netmap_adapter *na
}
}
-/* nm_dtor callback for persistent VALE ports */
-static void
-netmap_persist_vp_dtor(struct netmap_adapter *na)
-{
- struct ifnet *ifp = na->ifp;
-
- netmap_vp_dtor(na);
- na->ifp = NULL;
- nm_vi_detach(ifp);
-}
-
/* remove a persistent VALE port from the system */
static int
nm_vi_destroy(const char *name)
@@ -546,6 +535,7 @@ nm_vi_destroy(const char *name)
*/
if_rele(ifp);
netmap_detach(ifp);
+ nm_vi_detach(ifp);
return 0;
err:
@@ -587,7 +577,6 @@ nm_vi_create(struct nmreq *nmr)
}
/* persist-specific routines */
vpna->up.nm_bdg_ctl = netmap_vp_bdg_ctl;
- vpna->up.nm_dtor = netmap_persist_vp_dtor;
netmap_adapter_get(&vpna->up);
NMG_UNLOCK();
D("created %s", ifp->if_xname);
@@ -1823,6 +1812,11 @@ netmap_vp_create(struct nmreq *nmr, stru
D("max frame size %u", vpna->mfs);
na->na_flags |= NAF_BDG_MAYSLEEP;
+ /* persistent VALE ports look like hw devices
+ * with a native netmap adapter
+ */
+ if (ifp)
+ na->na_flags |= NAF_NATIVE;
na->nm_txsync = netmap_vp_txsync;
na->nm_rxsync = netmap_vp_rxsync;
na->nm_register = netmap_vp_reg;
More information about the svn-src-all
mailing list