Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Feb 2020 03:07:21 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r357559 - head/sys/netgraph
Message-ID:  <202002050307.01537LMZ031225@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002050307.01537LMZ031225>