Module Name: src
Committed By: maxv
Date: Thu Apr 26 19:50:09 UTC 2018
Modified Files:
src/sys/kern: uipc_socket.c
src/sys/netinet6: icmp6.c ip6_forward.c ip6_mroute.c ip6_output.c
raw_ip6.c
src/sys/netipsec: keysock.c
Log Message:
Stop using m_copy(), use m_copym() directly. m_copy is useless,
undocumented and confusing.
To generate a diff of this commit:
cvs rdiff -u -r1.262 -r1.263 src/sys/kern/uipc_socket.c
cvs rdiff -u -r1.231 -r1.232 src/sys/netinet6/icmp6.c
cvs rdiff -u -r1.93 -r1.94 src/sys/netinet6/ip6_forward.c
cvs rdiff -u -r1.124 -r1.125 src/sys/netinet6/ip6_mroute.c
cvs rdiff -u -r1.205 -r1.206 src/sys/netinet6/ip6_output.c
cvs rdiff -u -r1.168 -r1.169 src/sys/netinet6/raw_ip6.c
cvs rdiff -u -r1.64 -r1.65 src/sys/netipsec/keysock.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_socket.c
diff -u src/sys/kern/uipc_socket.c:1.262 src/sys/kern/uipc_socket.c:1.263
--- src/sys/kern/uipc_socket.c:1.262 Thu Apr 26 19:22:17 2018
+++ src/sys/kern/uipc_socket.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: uipc_socket.c,v 1.262 2018/04/26 19:22:17 maxv Exp $ */
+/* $NetBSD: uipc_socket.c,v 1.263 2018/04/26 19:50:09 maxv Exp $ */
/*-
* Copyright (c) 2002, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -71,7 +71,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.262 2018/04/26 19:22:17 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.263 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -1316,7 +1316,7 @@ soreceive(struct socket *so, struct mbuf
orig_resid = 0;
if (flags & MSG_PEEK) {
if (paddr)
- *paddr = m_copy(m, 0, m->m_len);
+ *paddr = m_copym(m, 0, m->m_len, M_DONTWAIT);
m = m->m_next;
} else {
sbfree(&so->so_rcv, m);
@@ -1341,7 +1341,7 @@ soreceive(struct socket *so, struct mbuf
orig_resid = 0;
if (flags & MSG_PEEK) {
if (paddr)
- *paddr = m_copy(m, 0, m->m_len);
+ *paddr = m_copym(m, 0, m->m_len, M_DONTWAIT);
m = m->m_next;
} else {
sbfree(&so->so_rcv, m);
@@ -1370,7 +1370,7 @@ soreceive(struct socket *so, struct mbuf
do {
if (flags & MSG_PEEK) {
if (controlp != NULL) {
- *controlp = m_copy(m, 0, m->m_len);
+ *controlp = m_copym(m, 0, m->m_len, M_DONTWAIT);
controlp = &(*controlp)->m_next;
}
m = m->m_next;
Index: src/sys/netinet6/icmp6.c
diff -u src/sys/netinet6/icmp6.c:1.231 src/sys/netinet6/icmp6.c:1.232
--- src/sys/netinet6/icmp6.c:1.231 Thu Apr 26 07:28:21 2018
+++ src/sys/netinet6/icmp6.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: icmp6.c,v 1.231 2018/04/26 07:28:21 maxv Exp $ */
+/* $NetBSD: icmp6.c,v 1.232 2018/04/26 19:50:09 maxv Exp $ */
/* $KAME: icmp6.c,v 1.217 2001/06/20 15:03:29 jinmei Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.231 2018/04/26 07:28:21 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.232 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1967,7 +1967,7 @@ icmp6_rip6_input(struct mbuf **mp, int o
/* do not inject data into pcb */
}
#endif
- else if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {
+ else if ((n = m_copym(m, 0, (int)M_COPYALL, M_DONTWAIT)) != NULL) {
if (last->in6p_flags & IN6P_CONTROLOPTS)
ip6_savecontrol(last, &opts, ip6, n);
/* strip intermediate headers */
Index: src/sys/netinet6/ip6_forward.c
diff -u src/sys/netinet6/ip6_forward.c:1.93 src/sys/netinet6/ip6_forward.c:1.94
--- src/sys/netinet6/ip6_forward.c:1.93 Wed Apr 18 07:17:49 2018
+++ src/sys/netinet6/ip6_forward.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip6_forward.c,v 1.93 2018/04/18 07:17:49 maxv Exp $ */
+/* $NetBSD: ip6_forward.c,v 1.94 2018/04/26 19:50:09 maxv Exp $ */
/* $KAME: ip6_forward.c,v 1.109 2002/09/11 08:10:17 sakane Exp $ */
/*
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_forward.c,v 1.93 2018/04/18 07:17:49 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_forward.c,v 1.94 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_gateway.h"
@@ -177,7 +177,8 @@ ip6_forward(struct mbuf *m, int srcrt)
* It is important to save it before IPsec processing as IPsec
* processing may modify the mbuf.
*/
- mcopy = m_copy(m, 0, imin(m->m_pkthdr.len, ICMPV6_PLD_MAXLEN));
+ mcopy = m_copym(m, 0, imin(m->m_pkthdr.len, ICMPV6_PLD_MAXLEN),
+ M_DONTWAIT);
#ifdef IPSEC
if (ipsec_used) {
Index: src/sys/netinet6/ip6_mroute.c
diff -u src/sys/netinet6/ip6_mroute.c:1.124 src/sys/netinet6/ip6_mroute.c:1.125
--- src/sys/netinet6/ip6_mroute.c:1.124 Thu Apr 26 07:28:21 2018
+++ src/sys/netinet6/ip6_mroute.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip6_mroute.c,v 1.124 2018/04/26 07:28:21 maxv Exp $ */
+/* $NetBSD: ip6_mroute.c,v 1.125 2018/04/26 19:50:09 maxv Exp $ */
/* $KAME: ip6_mroute.c,v 1.49 2001/07/25 09:21:18 jinmei Exp $ */
/*
@@ -117,7 +117,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.124 2018/04/26 07:28:21 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.125 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1125,7 +1125,7 @@ ip6_mforward(struct ip6_hdr *ip6, struct
splx(s);
return ENOBUFS;
}
- mb0 = m_copy(m, 0, M_COPYALL);
+ mb0 = m_copym(m, 0, M_COPYALL, M_DONTWAIT);
/*
* Pullup packet header if needed before storing it,
@@ -1167,7 +1167,7 @@ ip6_mforward(struct ip6_hdr *ip6, struct
* Make a copy of the header to send to the user
* level process
*/
- mm = m_copy(mb0, 0, sizeof(struct ip6_hdr));
+ mm = m_copym(mb0, 0, sizeof(struct ip6_hdr), M_DONTWAIT);
if (mm == NULL) {
free(rte, M_MRTABLE);
@@ -1414,7 +1414,7 @@ ip6_mdq(struct mbuf *m, struct ifnet *if
struct mrt6msg *im;
struct omrt6msg *oim;
- mm = m_copy(m, 0, sizeof(struct ip6_hdr));
+ mm = m_copym(m, 0, sizeof(struct ip6_hdr), M_DONTWAIT);
if (mm && M_UNWRITABLE(mm, sizeof(struct ip6_hdr)))
mm = m_pullup(mm, sizeof(struct ip6_hdr));
if (mm == NULL)
@@ -1548,7 +1548,7 @@ phyint_send(struct ip6_hdr *ip6, struct
* the IPv6 header is actually copied, not just referenced,
* so that ip6_output() only scribbles on the copy.
*/
- mb_copy = m_copy(m, 0, M_COPYALL);
+ mb_copy = m_copym(m, 0, M_COPYALL, M_DONTWAIT);
if (mb_copy && M_UNWRITABLE(mb_copy, sizeof(struct ip6_hdr)))
mb_copy = m_pullup(mb_copy, sizeof(struct ip6_hdr));
if (mb_copy == NULL) {
@@ -1668,7 +1668,7 @@ register_send(struct ip6_hdr *ip6, struc
mm->m_data += max_linkhdr;
mm->m_len = sizeof(struct ip6_hdr);
- if ((mm->m_next = m_copy(m, 0, M_COPYALL)) == NULL) {
+ if ((mm->m_next = m_copym(m, 0, M_COPYALL, M_DONTWAIT)) == NULL) {
m_freem(mm);
return ENOBUFS;
}
@@ -1895,7 +1895,7 @@ pim6_input(struct mbuf **mp, int *offp,
/*
* make a copy of the whole header to pass to the daemon later.
*/
- mcp = m_copy(m, 0, off + PIM6_REG_MINLEN);
+ mcp = m_copym(m, 0, off + PIM6_REG_MINLEN, M_DONTWAIT);
if (mcp == NULL) {
#ifdef MRT6DEBUG
log(LOG_ERR,
Index: src/sys/netinet6/ip6_output.c
diff -u src/sys/netinet6/ip6_output.c:1.205 src/sys/netinet6/ip6_output.c:1.206
--- src/sys/netinet6/ip6_output.c:1.205 Mon Apr 23 07:22:54 2018
+++ src/sys/netinet6/ip6_output.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip6_output.c,v 1.205 2018/04/23 07:22:54 maxv Exp $ */
+/* $NetBSD: ip6_output.c,v 1.206 2018/04/26 19:50:09 maxv Exp $ */
/* $KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.205 2018/04/23 07:22:54 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.206 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -988,7 +988,7 @@ ip6_output(
mhip6->ip6_plen = htons((u_int16_t)(len + hlen +
sizeof(*ip6f) - sizeof(struct ip6_hdr)));
- if ((m_frgpart = m_copy(m0, off, len)) == NULL) {
+ if ((m_frgpart = m_copym(m0, off, len, M_DONTWAIT)) == NULL) {
error = ENOBUFS;
IP6_STATINC(IP6_STAT_ODROPPED);
goto sendorfree;
@@ -3260,7 +3260,7 @@ ip6_mloopback(struct ifnet *ifp, struct
struct mbuf *copym;
struct ip6_hdr *ip6;
- copym = m_copy(m, 0, M_COPYALL);
+ copym = m_copym(m, 0, M_COPYALL, M_DONTWAIT);
if (copym == NULL)
return;
Index: src/sys/netinet6/raw_ip6.c
diff -u src/sys/netinet6/raw_ip6.c:1.168 src/sys/netinet6/raw_ip6.c:1.169
--- src/sys/netinet6/raw_ip6.c:1.168 Thu Apr 12 07:28:10 2018
+++ src/sys/netinet6/raw_ip6.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: raw_ip6.c,v 1.168 2018/04/12 07:28:10 maxv Exp $ */
+/* $NetBSD: raw_ip6.c,v 1.169 2018/04/26 19:50:09 maxv Exp $ */
/* $KAME: raw_ip6.c,v 1.82 2001/07/23 18:57:56 jinmei Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.168 2018/04/12 07:28:10 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.169 2018/04/26 19:50:09 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_ipsec.h"
@@ -198,7 +198,7 @@ rip6_input(struct mbuf **mp, int *offp,
/* do not inject data into pcb */
}
#endif
- else if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {
+ else if ((n = m_copym(m, 0, (int)M_COPYALL, M_DONTWAIT)) != NULL) {
if (last->in6p_flags & IN6P_CONTROLOPTS)
ip6_savecontrol(last, &opts, ip6, n);
/* strip intermediate headers */
Index: src/sys/netipsec/keysock.c
diff -u src/sys/netipsec/keysock.c:1.64 src/sys/netipsec/keysock.c:1.65
--- src/sys/netipsec/keysock.c:1.64 Thu Apr 19 08:27:38 2018
+++ src/sys/netipsec/keysock.c Thu Apr 26 19:50:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: keysock.c,v 1.64 2018/04/19 08:27:38 maxv Exp $ */
+/* $NetBSD: keysock.c,v 1.65 2018/04/26 19:50:09 maxv Exp $ */
/* $FreeBSD: keysock.c,v 1.3.2.1 2003/01/24 05:11:36 sam Exp $ */
/* $KAME: keysock.c,v 1.25 2001/08/13 20:07:41 itojun Exp $ */
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.64 2018/04/19 08:27:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: keysock.c,v 1.65 2018/04/26 19:50:09 maxv Exp $");
/* This code has derived from sys/net/rtsock.c on FreeBSD2.2.5 */
@@ -379,7 +379,7 @@ _key_sendup_mbuf(struct socket *so, stru
* (based on [email protected] message on 14 Oct 1998)
*/
if (((struct keycb *)rp)->kp_promisc) {
- if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) {
+ if ((n = m_copym(m, 0, (int)M_COPYALL, M_DONTWAIT)) != NULL) {
(void)key_sendup0(rp, n, 1, 0);
n = NULL;
}
@@ -417,7 +417,7 @@ _key_sendup_mbuf(struct socket *so, stru
if (!sendup)
continue;
- if ((n = m_copy(m, 0, (int)M_COPYALL)) == NULL) {
+ if ((n = m_copym(m, 0, (int)M_COPYALL, M_DONTWAIT)) == NULL) {
m_freem(m);
PFKEY_STATINC(PFKEY_STAT_IN_NOMEM);
return ENOBUFS;