svn commit: r350009 - stable/12/sys/dev/netmap
Vincenzo Maffione
vmaffione at FreeBSD.org
Mon Jul 15 20:25:51 UTC 2019
Author: vmaffione
Date: Mon Jul 15 20:25:49 2019
New Revision: 350009
URL: https://svnweb.freebsd.org/changeset/base/350009
Log:
MFC r349581
netmap: fix two panics with emulated adapter
This patch fixes 2 panics. The first one is due to the current VNET not
being set in the emulated adapter transmission path. The second one
is caused by the M_PKTHDR flag not being set when preallocated mbufs
are recycled in the transmit path.
Submitted by: aleksandr.fedorov at itglobal.com
Reviewed by: vmaffione
Differential Revision: https://reviews.freebsd.org/D20824
Modified:
stable/12/sys/dev/netmap/netmap_freebsd.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/dev/netmap/netmap_freebsd.c
==============================================================================
--- stable/12/sys/dev/netmap/netmap_freebsd.c Mon Jul 15 20:25:41 2019 (r350008)
+++ stable/12/sys/dev/netmap/netmap_freebsd.c Mon Jul 15 20:25:49 2019 (r350009)
@@ -443,6 +443,7 @@ nm_os_generic_xmit_frame(struct nm_os_gen_arg *a)
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
@@ -451,7 +452,9 @@ nm_os_generic_xmit_frame(struct nm_os_gen_arg *a)
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;
}
More information about the svn-src-all
mailing list