Module Name: src
Committed By: ozaki-r
Date: Thu Nov 27 03:15:51 UTC 2014
Modified Files:
src/sys/kern: uipc_mbuf.c
src/sys/net: if.c if.h
src/sys/rump/librump/rumpnet: net_stub.c
Log Message:
Pull if_drain routine out of m_reclaim
It's if-specific and should be in if.c.
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.158 -r1.159 src/sys/kern/uipc_mbuf.c
cvs rdiff -u -r1.298 -r1.299 src/sys/net/if.c
cvs rdiff -u -r1.179 -r1.180 src/sys/net/if.h
cvs rdiff -u -r1.18 -r1.19 src/sys/rump/librump/rumpnet/net_stub.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/uipc_mbuf.c
diff -u src/sys/kern/uipc_mbuf.c:1.158 src/sys/kern/uipc_mbuf.c:1.159
--- src/sys/kern/uipc_mbuf.c:1.158 Tue Feb 25 18:30:11 2014
+++ src/sys/kern/uipc_mbuf.c Thu Nov 27 03:15:51 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uipc_mbuf.c,v 1.158 2014/02/25 18:30:11 pooka Exp $ */
+/* $NetBSD: uipc_mbuf.c,v 1.159 2014/11/27 03:15:51 ozaki-r Exp $ */
/*-
* Copyright (c) 1999, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.158 2014/02/25 18:30:11 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.159 2014/11/27 03:15:51 ozaki-r Exp $");
#include "opt_mbuftrace.h"
#include "opt_nmbclusters.h"
@@ -543,7 +543,6 @@ m_reclaim(void *arg, int flags)
{
struct domain *dp;
const struct protosw *pr;
- struct ifnet *ifp;
int s;
KERNEL_LOCK(1, NULL);
@@ -554,10 +553,7 @@ m_reclaim(void *arg, int flags)
if (pr->pr_drain)
(*pr->pr_drain)();
}
- IFNET_FOREACH(ifp) {
- if (ifp->if_drain)
- (*ifp->if_drain)(ifp);
- }
+ if_drain_all();
splx(s);
mbstat.m_drain++;
KERNEL_UNLOCK_ONE(NULL);
Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.298 src/sys/net/if.c:1.299
--- src/sys/net/if.c:1.298 Wed Nov 26 09:53:53 2014
+++ src/sys/net/if.c Thu Nov 27 03:15:51 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if.c,v 1.298 2014/11/26 09:53:53 ozaki-r Exp $ */
+/* $NetBSD: if.c,v 1.299 2014/11/27 03:15:51 ozaki-r Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.298 2014/11/26 09:53:53 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.299 2014/11/27 03:15:51 ozaki-r Exp $");
#include "opt_inet.h"
@@ -2324,6 +2324,17 @@ if_mcast_op(ifnet_t *ifp, const unsigned
return rc;
}
+void
+if_drain_all(void)
+{
+ struct ifnet *ifp;
+
+ IFNET_FOREACH(ifp) {
+ if (ifp->if_drain)
+ (*ifp->if_drain)(ifp);
+ }
+}
+
static void
sysctl_sndq_setup(struct sysctllog **clog, const char *ifname,
struct ifaltq *ifq)
Index: src/sys/net/if.h
diff -u src/sys/net/if.h:1.179 src/sys/net/if.h:1.180
--- src/sys/net/if.h:1.179 Wed Nov 26 09:38:42 2014
+++ src/sys/net/if.h Thu Nov 27 03:15:51 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if.h,v 1.179 2014/11/26 09:38:42 ozaki-r Exp $ */
+/* $NetBSD: if.h,v 1.180 2014/11/27 03:15:51 ozaki-r Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -968,6 +968,7 @@ extern struct ifnet_head ifnet_list;
extern struct ifnet *lo0ifp;
ifnet_t * if_byindex(u_int);
+void if_drain_all(void);
/*
* ifq sysctl support
Index: src/sys/rump/librump/rumpnet/net_stub.c
diff -u src/sys/rump/librump/rumpnet/net_stub.c:1.18 src/sys/rump/librump/rumpnet/net_stub.c:1.19
--- src/sys/rump/librump/rumpnet/net_stub.c:1.18 Sun May 18 14:03:26 2014
+++ src/sys/rump/librump/rumpnet/net_stub.c Thu Nov 27 03:15:51 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: net_stub.c,v 1.18 2014/05/18 14:03:26 rmind Exp $ */
+/* $NetBSD: net_stub.c,v 1.19 2014/11/27 03:15:51 ozaki-r Exp $ */
/*
* Copyright (c) 2008 Antti Kantee. All Rights Reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.18 2014/05/18 14:03:26 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.19 2014/11/27 03:15:51 ozaki-r Exp $");
#include <sys/param.h>
#include <sys/protosw.h>
@@ -61,7 +61,9 @@ __weak_alias(agr_input,rumpnet_stub);
__weak_alias(ieee8023ad_lacp_input,rumpnet_stub);
__weak_alias(ieee8023ad_marker_input,rumpnet_stub);
+/* if */
struct ifnet_head ifnet_list;
+__weak_alias(if_drain_all,rumpnet_stub);
int
compat_ifconf(u_long cmd, void *data)