This revision was automatically updated to reflect the committed changes.
Closed by commit rS349581: netmap: fix two panics with emulated adapter 
(authored by vmaffione).
Herald added a subscriber: imp.

CHANGED PRIOR TO COMMIT
  https://reviews.freebsd.org/D20824?vs=59258&id=59287#toc

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D20824?vs=59258&id=59287

CHANGES SINCE LAST ACTION
  https://reviews.freebsd.org/D20824/new/

REVISION DETAIL
  https://reviews.freebsd.org/D20824

AFFECTED FILES
  head/sys/dev/netmap/netmap_freebsd.c

CHANGE DETAILS

diff --git a/head/sys/dev/netmap/netmap_freebsd.c 
b/head/sys/dev/netmap/netmap_freebsd.c
--- a/head/sys/dev/netmap/netmap_freebsd.c
+++ b/head/sys/dev/netmap/netmap_freebsd.c
@@ -444,6 +444,7 @@
        m->m_ext.ext_size = len;
 #endif /* __FreeBSD_version >= 1100000 */
 
+       m->m_flags |= M_PKTHDR;
        m->m_len = m->m_pkthdr.len = len;
 
        /* mbuf refcnt is not contended, no need to use atomic
@@ -452,7 +453,9 @@
        M_HASHTYPE_SET(m, M_HASHTYPE_OPAQUE);
        m->m_pkthdr.flowid = a->ring_nr;
        m->m_pkthdr.rcvif = ifp; /* used for tx notification */
+       CURVNET_SET(ifp->if_vnet);
        ret = NA(ifp)->if_transmit(ifp, m);
+       CURVNET_RESTORE();
        return ret ? -1 : 0;
 }
 



EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: aleksandr.fedorov_itglobal.com, vmaffione, jhb, bz
Cc: imp, olevole_olevole.ru, krion, evgueni.gavrilov_itglobal.com, 
freebsd-net-list
diff --git a/head/sys/dev/netmap/netmap_freebsd.c b/head/sys/dev/netmap/netmap_freebsd.c
--- a/head/sys/dev/netmap/netmap_freebsd.c
+++ b/head/sys/dev/netmap/netmap_freebsd.c
@@ -444,6 +444,7 @@
 	m->m_ext.ext_size = len;
 #endif /* __FreeBSD_version >= 1100000 */
 
+	m->m_flags |= M_PKTHDR;
 	m->m_len = m->m_pkthdr.len = len;
 
 	/* mbuf refcnt is not contended, no need to use atomic
@@ -452,7 +453,9 @@
 	M_HASHTYPE_SET(m, M_HASHTYPE_OPAQUE);
 	m->m_pkthdr.flowid = a->ring_nr;
 	m->m_pkthdr.rcvif = ifp; /* used for tx notification */
+	CURVNET_SET(ifp->if_vnet);
 	ret = NA(ifp)->if_transmit(ifp, m);
+	CURVNET_RESTORE();
 	return ret ? -1 : 0;
 }
 

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to