svn commit: r357559 - head/sys/netgraph

Gleb Smirnoff glebius at FreeBSD.org
Wed Feb 5 03:07:21 UTC 2020


Author: glebius
Date: Wed Feb  5 03:07:20 2020
New Revision: 357559
URL: https://svnweb.freebsd.org/changeset/base/357559

Log:
  I doubt anybody in the world uses ng_device, but its write method should
  also enter the network epoch when sending data from user level to netgraph.

Modified:
  head/sys/netgraph/ng_device.c

Modified: head/sys/netgraph/ng_device.c
==============================================================================
--- head/sys/netgraph/ng_device.c	Wed Feb  5 03:06:29 2020	(r357558)
+++ head/sys/netgraph/ng_device.c	Wed Feb  5 03:07:20 2020	(r357559)
@@ -46,6 +46,8 @@
 #include <sys/malloc.h>
 #include <sys/mbuf.h>
 #include <sys/poll.h>
+#include <sys/proc.h>
+#include <sys/epoch.h>
 #include <sys/queue.h>
 #include <sys/socket.h>
 #include <sys/systm.h>
@@ -454,6 +456,7 @@ ngdread(struct cdev *dev, struct uio *uio, int flag)
 static int
 ngdwrite(struct cdev *dev, struct uio *uio, int flag)
 {
+	struct epoch_tracker et;
 	priv_p	priv = (priv_p )dev->si_drv1;
 	struct mbuf *m;
 	int error = 0;
@@ -469,7 +472,9 @@ ngdwrite(struct cdev *dev, struct uio *uio, int flag)
 	if ((m = m_uiotombuf(uio, M_NOWAIT, 0, 0, M_PKTHDR)) == NULL)
 		return (ENOBUFS);
 
+	NET_EPOCH_ENTER(et);
 	NG_SEND_DATA_ONLY(error, priv->hook, m);
+	NET_EPOCH_EXIT(et);
 
 	return (error);
 }


More information about the svn-src-head mailing list