git: b46667c63eb7 - main - sockbuf: merge two versions of sbcreatecontrol() into one
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 17 May 2022 17:11:58 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=b46667c63eb7f126a56e23af1401d98d77b912e8
commit b46667c63eb7f126a56e23af1401d98d77b912e8
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2022-05-17 17:10:42 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2022-05-17 17:10:42 +0000
sockbuf: merge two versions of sbcreatecontrol() into one
No functional change.
---
sys/dev/cxgbe/tom/t4_tls.c | 2 +-
sys/kern/uipc_ktls.c | 2 +-
sys/kern/uipc_sockbuf.c | 9 +--
sys/kern/uipc_usrreq.c | 18 +++---
.../bluetooth/socket/ng_btsocket_hci_raw.c | 8 +--
sys/netinet/ip_input.c | 56 +++++++++----------
sys/netinet/udp_usrreq.c | 5 +-
sys/netinet6/ip6_input.c | 65 +++++++++++-----------
sys/netinet6/udp6_usrreq.c | 5 +-
sys/sys/sockbuf.h | 5 +-
10 files changed, 83 insertions(+), 92 deletions(-)
diff --git a/sys/dev/cxgbe/tom/t4_tls.c b/sys/dev/cxgbe/tom/t4_tls.c
index 936199fd18f1..eb540406a271 100644
--- a/sys/dev/cxgbe/tom/t4_tls.c
+++ b/sys/dev/cxgbe/tom/t4_tls.c
@@ -1035,7 +1035,7 @@ do_rx_tls_cmp(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m)
/* Allocate the control message mbuf. */
control = sbcreatecontrol(NULL, sizeof(*tgr), TLS_GET_RECORD,
- IPPROTO_TCP);
+ IPPROTO_TCP, M_NOWAIT);
if (control == NULL) {
m_freem(m);
m_freem(tls_data);
diff --git a/sys/kern/uipc_ktls.c b/sys/kern/uipc_ktls.c
index 7b99c460e8de..ea20532a4d8c 100644
--- a/sys/kern/uipc_ktls.c
+++ b/sys/kern/uipc_ktls.c
@@ -2119,7 +2119,7 @@ ktls_decrypt(struct socket *so)
tgr.tls_vminor = hdr->tls_vminor;
tgr.tls_length = htobe16(tls_len - tls->params.tls_hlen -
trail_len);
- control = sbcreatecontrol_how(&tgr, sizeof(tgr),
+ control = sbcreatecontrol(&tgr, sizeof(tgr),
TLS_GET_RECORD, IPPROTO_TCP, M_WAITOK);
SOCKBUF_LOCK(sb);
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c
index 421fa5da37d9..884562510e61 100644
--- a/sys/kern/uipc_sockbuf.c
+++ b/sys/kern/uipc_sockbuf.c
@@ -1760,7 +1760,7 @@ sbdroprecord(struct sockbuf *sb)
* type for presentation on a socket buffer.
*/
struct mbuf *
-sbcreatecontrol_how(void *p, int size, int type, int level, int wait)
+sbcreatecontrol(void *p, int size, int type, int level, int wait)
{
struct cmsghdr *cp;
struct mbuf *m;
@@ -1792,13 +1792,6 @@ sbcreatecontrol_how(void *p, int size, int type, int level, int wait)
return (m);
}
-struct mbuf *
-sbcreatecontrol(caddr_t p, int size, int type, int level)
-{
-
- return (sbcreatecontrol_how(p, size, type, level, M_NOWAIT));
-}
-
/*
* This does the same for socket buffers that sotoxsocket does for sockets:
* generate an user-format data structure describing the socket buffer. Note
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index e89d7567fcda..f08b972c6de6 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -2043,7 +2043,7 @@ unp_externalize(struct mbuf *control, struct mbuf **controlp, int flags)
*/
newlen = newfds * sizeof(int);
*controlp = sbcreatecontrol(NULL, newlen,
- SCM_RIGHTS, SOL_SOCKET);
+ SCM_RIGHTS, SOL_SOCKET, M_NOWAIT);
if (*controlp == NULL) {
FILEDESC_XUNLOCK(fdesc);
error = E2BIG;
@@ -2081,7 +2081,7 @@ unp_externalize(struct mbuf *control, struct mbuf **controlp, int flags)
if (error || controlp == NULL)
goto next;
*controlp = sbcreatecontrol(NULL, datalen,
- cm->cmsg_type, cm->cmsg_level);
+ cm->cmsg_type, cm->cmsg_level, M_NOWAIT);
if (*controlp == NULL) {
error = ENOBUFS;
goto next;
@@ -2222,7 +2222,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
* Fill in credential information.
*/
case SCM_CREDS:
- *controlp = sbcreatecontrol_how(NULL, sizeof(*cmcred),
+ *controlp = sbcreatecontrol(NULL, sizeof(*cmcred),
SCM_CREDS, SOL_SOCKET, M_WAITOK);
cmcred = (struct cmsgcred *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
@@ -2266,7 +2266,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
* file structure and capability rights.
*/
newlen = oldfds * sizeof(fdep[0]);
- *controlp = sbcreatecontrol_how(NULL, newlen,
+ *controlp = sbcreatecontrol(NULL, newlen,
SCM_RIGHTS, SOL_SOCKET, M_WAITOK);
fdp = data;
for (i = 0; i < oldfds; i++, fdp++) {
@@ -2298,7 +2298,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
break;
case SCM_TIMESTAMP:
- *controlp = sbcreatecontrol_how(NULL, sizeof(*tv),
+ *controlp = sbcreatecontrol(NULL, sizeof(*tv),
SCM_TIMESTAMP, SOL_SOCKET, M_WAITOK);
tv = (struct timeval *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
@@ -2306,7 +2306,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
break;
case SCM_BINTIME:
- *controlp = sbcreatecontrol_how(NULL, sizeof(*bt),
+ *controlp = sbcreatecontrol(NULL, sizeof(*bt),
SCM_BINTIME, SOL_SOCKET, M_WAITOK);
bt = (struct bintime *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
@@ -2314,7 +2314,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
break;
case SCM_REALTIME:
- *controlp = sbcreatecontrol_how(NULL, sizeof(*ts),
+ *controlp = sbcreatecontrol(NULL, sizeof(*ts),
SCM_REALTIME, SOL_SOCKET, M_WAITOK);
ts = (struct timespec *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
@@ -2322,7 +2322,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
break;
case SCM_MONOTONIC:
- *controlp = sbcreatecontrol_how(NULL, sizeof(*ts),
+ *controlp = sbcreatecontrol(NULL, sizeof(*ts),
SCM_MONOTONIC, SOL_SOCKET, M_WAITOK);
ts = (struct timespec *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
@@ -2370,7 +2370,7 @@ unp_addsockcred(struct thread *td, struct mbuf *control, int mode)
cmsgtype = SCM_CREDS;
}
- m = sbcreatecontrol(NULL, ctrlsz, cmsgtype, SOL_SOCKET);
+ m = sbcreatecontrol(NULL, ctrlsz, cmsgtype, SOL_SOCKET, M_NOWAIT);
if (m == NULL)
return (control);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
index 59bacf8c965b..03894464a69a 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
@@ -460,16 +460,16 @@ ng_btsocket_hci_raw_savctl(ng_btsocket_hci_raw_pcb_p pcb, struct mbuf **ctl,
if (pcb->flags & NG_BTSOCKET_HCI_RAW_DIRECTION) {
dir = (m->m_flags & M_PROTO1)? 1 : 0;
- *ctl = sbcreatecontrol((caddr_t) &dir, sizeof(dir),
- SCM_HCI_RAW_DIRECTION, SOL_HCI_RAW);
+ *ctl = sbcreatecontrol(&dir, sizeof(dir),
+ SCM_HCI_RAW_DIRECTION, SOL_HCI_RAW, M_NOWAIT);
if (*ctl != NULL)
ctl = &((*ctl)->m_next);
}
if (pcb->so->so_options & SO_TIMESTAMP) {
microtime(&tv);
- *ctl = sbcreatecontrol((caddr_t) &tv, sizeof(tv),
- SCM_TIMESTAMP, SOL_SOCKET);
+ *ctl = sbcreatecontrol(&tv, sizeof(tv), SCM_TIMESTAMP,
+ SOL_SOCKET, M_NOWAIT);
if (*ctl != NULL)
ctl = &((*ctl)->m_next);
}
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 7c365b2e51b8..e1029920c95f 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -1167,8 +1167,8 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
} else {
bintime(&bt);
}
- *mp = sbcreatecontrol((caddr_t)&bt, sizeof(bt),
- SCM_BINTIME, SOL_SOCKET);
+ *mp = sbcreatecontrol(&bt, sizeof(bt), SCM_BINTIME,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1189,8 +1189,8 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
} else {
microtime(&tv);
}
- *mp = sbcreatecontrol((caddr_t)&tv, sizeof(tv),
- SCM_TIMESTAMP, SOL_SOCKET);
+ *mp = sbcreatecontrol((caddr_t)&tv, sizeof(tv), SCM_TIMESTAMP,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1208,8 +1208,8 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
} else {
nanotime(&ts);
}
- *mp = sbcreatecontrol((caddr_t)&ts, sizeof(ts),
- SCM_REALTIME, SOL_SOCKET);
+ *mp = sbcreatecontrol(&ts, sizeof(ts), SCM_REALTIME,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1222,8 +1222,8 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
mbuf_tstmp2timespec(m, &ts);
else
nanouptime(&ts);
- *mp = sbcreatecontrol((caddr_t)&ts, sizeof(ts),
- SCM_MONOTONIC, SOL_SOCKET);
+ *mp = sbcreatecontrol(&ts, sizeof(ts), SCM_MONOTONIC,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1237,20 +1237,20 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
sti.st_info_flags = ST_INFO_HW;
if ((m->m_flags & M_TSTMP_HPREC) != 0)
sti.st_info_flags |= ST_INFO_HW_HPREC;
- *mp = sbcreatecontrol((caddr_t)&sti, sizeof(sti), SCM_TIME_INFO,
- SOL_SOCKET);
+ *mp = sbcreatecontrol(&sti, sizeof(sti), SCM_TIME_INFO,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL)
mp = &(*mp)->m_next;
}
if (inp->inp_flags & INP_RECVDSTADDR) {
- *mp = sbcreatecontrol((caddr_t)&ip->ip_dst,
- sizeof(struct in_addr), IP_RECVDSTADDR, IPPROTO_IP);
+ *mp = sbcreatecontrol(&ip->ip_dst, sizeof(struct in_addr),
+ IP_RECVDSTADDR, IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
if (inp->inp_flags & INP_RECVTTL) {
- *mp = sbcreatecontrol((caddr_t)&ip->ip_ttl,
- sizeof(u_char), IP_RECVTTL, IPPROTO_IP);
+ *mp = sbcreatecontrol(&ip->ip_ttl, sizeof(u_char), IP_RECVTTL,
+ IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1261,15 +1261,15 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip,
*/
/* options were tossed already */
if (inp->inp_flags & INP_RECVOPTS) {
- *mp = sbcreatecontrol((caddr_t)opts_deleted_above,
- sizeof(struct in_addr), IP_RECVOPTS, IPPROTO_IP);
+ *mp = sbcreatecontrol(opts_deleted_above,
+ sizeof(struct in_addr), IP_RECVOPTS, IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
/* ip_srcroute doesn't do what we want here, need to fix */
if (inp->inp_flags & INP_RECVRETOPTS) {
- *mp = sbcreatecontrol((caddr_t)ip_srcroute(m),
- sizeof(struct in_addr), IP_RECVRETOPTS, IPPROTO_IP);
+ *mp = sbcreatecontrol(ip_srcroute(m), sizeof(struct in_addr),
+ IP_RECVRETOPTS, IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1301,14 +1301,14 @@ makedummy:
sdl2->sdl_index = 0;
sdl2->sdl_nlen = sdl2->sdl_alen = sdl2->sdl_slen = 0;
}
- *mp = sbcreatecontrol((caddr_t)sdl2, sdl2->sdl_len,
- IP_RECVIF, IPPROTO_IP);
+ *mp = sbcreatecontrol(sdl2, sdl2->sdl_len, IP_RECVIF,
+ IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
if (inp->inp_flags & INP_RECVTOS) {
- *mp = sbcreatecontrol((caddr_t)&ip->ip_tos,
- sizeof(u_char), IP_RECVTOS, IPPROTO_IP);
+ *mp = sbcreatecontrol(&ip->ip_tos, sizeof(u_char), IP_RECVTOS,
+ IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1323,12 +1323,12 @@ makedummy:
* XXX should handle the failure of one or the
* other - don't populate both?
*/
- *mp = sbcreatecontrol((caddr_t) &flowid,
- sizeof(uint32_t), IP_FLOWID, IPPROTO_IP);
+ *mp = sbcreatecontrol(&flowid, sizeof(uint32_t), IP_FLOWID,
+ IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
- *mp = sbcreatecontrol((caddr_t) &flow_type,
- sizeof(uint32_t), IP_FLOWTYPE, IPPROTO_IP);
+ *mp = sbcreatecontrol(&flow_type, sizeof(uint32_t),
+ IP_FLOWTYPE, IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1342,8 +1342,8 @@ makedummy:
flow_type = M_HASHTYPE_GET(m);
if (rss_hash2bucket(flowid, flow_type, &rss_bucketid) == 0) {
- *mp = sbcreatecontrol((caddr_t) &rss_bucketid,
- sizeof(uint32_t), IP_RSSBUCKETID, IPPROTO_IP);
+ *mp = sbcreatecontrol(&rss_bucketid, sizeof(uint32_t),
+ IP_RSSBUCKETID, IPPROTO_IP, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index f35ba81f3936..3b3bb71339d4 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -327,8 +327,9 @@ udp_append(struct inpcb *inp, struct ip *ip, struct mbuf *n, int off,
ip_savecontrol(inp, &opts, ip, n);
}
if ((inp->inp_vflag & INP_IPV4) && (inp->inp_flags2 & INP_ORIGDSTADDR)) {
- tmpopts = sbcreatecontrol((caddr_t)&udp_in[1],
- sizeof(struct sockaddr_in), IP_ORIGDSTADDR, IPPROTO_IP);
+ tmpopts = sbcreatecontrol(&udp_in[1],
+ sizeof(struct sockaddr_in), IP_ORIGDSTADDR, IPPROTO_IP,
+ M_NOWAIT);
if (tmpopts) {
if (opts) {
tmpopts->m_next = opts;
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index 3a13d2a9dc74..9835dc495f09 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -1216,8 +1216,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
} else {
microtime(&t.tv);
}
- *mp = sbcreatecontrol((caddr_t) &t.tv, sizeof(t.tv),
- SCM_TIMESTAMP, SOL_SOCKET);
+ *mp = sbcreatecontrol(&t.tv, sizeof(t.tv),
+ SCM_TIMESTAMP, SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1234,8 +1234,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
} else {
bintime(&t.bt);
}
- *mp = sbcreatecontrol((caddr_t)&t.bt, sizeof(t.bt),
- SCM_BINTIME, SOL_SOCKET);
+ *mp = sbcreatecontrol(&t.bt, sizeof(t.bt), SCM_BINTIME,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1252,8 +1252,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
} else {
nanotime(&t.ts);
}
- *mp = sbcreatecontrol((caddr_t)&t.ts, sizeof(t.ts),
- SCM_REALTIME, SOL_SOCKET);
+ *mp = sbcreatecontrol(&t.ts, sizeof(t.ts),
+ SCM_REALTIME, SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1266,8 +1266,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
mbuf_tstmp2timespec(m, &t.ts);
else
nanouptime(&t.ts);
- *mp = sbcreatecontrol((caddr_t)&t.ts, sizeof(t.ts),
- SCM_MONOTONIC, SOL_SOCKET);
+ *mp = sbcreatecontrol(&t.ts, sizeof(t.ts),
+ SCM_MONOTONIC, SOL_SOCKET, M_NOWAIT);
if (*mp != NULL) {
mp = &(*mp)->m_next;
stamped = true;
@@ -1285,8 +1285,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
sti.st_info_flags = ST_INFO_HW;
if ((m->m_flags & M_TSTMP_HPREC) != 0)
sti.st_info_flags |= ST_INFO_HW_HPREC;
- *mp = sbcreatecontrol((caddr_t)&sti, sizeof(sti),
- SCM_TIME_INFO, SOL_SOCKET);
+ *mp = sbcreatecontrol(&sti, sizeof(sti), SCM_TIME_INFO,
+ SOL_SOCKET, M_NOWAIT);
if (*mp != NULL)
mp = &(*mp)->m_next;
}
@@ -1318,9 +1318,9 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
pi6.ipi6_ifindex =
(m && m->m_pkthdr.rcvif) ? m->m_pkthdr.rcvif->if_index : 0;
- *mp = sbcreatecontrol((caddr_t) &pi6,
- sizeof(struct in6_pktinfo),
- IS2292(inp, IPV6_2292PKTINFO, IPV6_PKTINFO), IPPROTO_IPV6);
+ *mp = sbcreatecontrol(&pi6, sizeof(struct in6_pktinfo),
+ IS2292(inp, IPV6_2292PKTINFO, IPV6_PKTINFO), IPPROTO_IPV6,
+ M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1341,9 +1341,9 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
} else {
hlim = ip6->ip6_hlim & 0xff;
}
- *mp = sbcreatecontrol((caddr_t) &hlim, sizeof(int),
+ *mp = sbcreatecontrol(&hlim, sizeof(int),
IS2292(inp, IPV6_2292HOPLIMIT, IPV6_HOPLIMIT),
- IPPROTO_IPV6);
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1368,8 +1368,8 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp,
flowinfo >>= 20;
tclass = flowinfo & 0xff;
}
- *mp = sbcreatecontrol((caddr_t) &tclass, sizeof(int),
- IPV6_TCLASS, IPPROTO_IPV6);
+ *mp = sbcreatecontrol(&tclass, sizeof(int), IPV6_TCLASS,
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1425,9 +1425,9 @@ ip6_savecontrol(struct inpcb *inp, struct mbuf *m, struct mbuf **mp)
* RFC2292.
* Note: this constraint is removed in RFC3542
*/
- *mp = sbcreatecontrol((caddr_t)hbh, hbhlen,
+ *mp = sbcreatecontrol(hbh, hbhlen,
IS2292(inp, IPV6_2292HOPOPTS, IPV6_HOPOPTS),
- IPPROTO_IPV6);
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1476,10 +1476,9 @@ ip6_savecontrol(struct inpcb *inp, struct mbuf *m, struct mbuf **mp)
if (!(inp->inp_flags & IN6P_DSTOPTS))
break;
- *mp = sbcreatecontrol((caddr_t)ip6e, elen,
- IS2292(inp,
- IPV6_2292DSTOPTS, IPV6_DSTOPTS),
- IPPROTO_IPV6);
+ *mp = sbcreatecontrol(ip6e, elen,
+ IS2292(inp, IPV6_2292DSTOPTS, IPV6_DSTOPTS),
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
break;
@@ -1487,9 +1486,9 @@ ip6_savecontrol(struct inpcb *inp, struct mbuf *m, struct mbuf **mp)
if (!(inp->inp_flags & IN6P_RTHDR))
break;
- *mp = sbcreatecontrol((caddr_t)ip6e, elen,
+ *mp = sbcreatecontrol(ip6e, elen,
IS2292(inp, IPV6_2292RTHDR, IPV6_RTHDR),
- IPPROTO_IPV6);
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
break;
@@ -1526,12 +1525,12 @@ ip6_savecontrol(struct inpcb *inp, struct mbuf *m, struct mbuf **mp)
* XXX should handle the failure of one or the
* other - don't populate both?
*/
- *mp = sbcreatecontrol((caddr_t) &flowid,
- sizeof(uint32_t), IPV6_FLOWID, IPPROTO_IPV6);
+ *mp = sbcreatecontrol(&flowid, sizeof(uint32_t), IPV6_FLOWID,
+ IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
- *mp = sbcreatecontrol((caddr_t) &flow_type,
- sizeof(uint32_t), IPV6_FLOWTYPE, IPPROTO_IPV6);
+ *mp = sbcreatecontrol(&flow_type, sizeof(uint32_t),
+ IPV6_FLOWTYPE, IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1545,8 +1544,8 @@ ip6_savecontrol(struct inpcb *inp, struct mbuf *m, struct mbuf **mp)
flow_type = M_HASHTYPE_GET(m);
if (rss_hash2bucket(flowid, flow_type, &rss_bucketid) == 0) {
- *mp = sbcreatecontrol((caddr_t) &rss_bucketid,
- sizeof(uint32_t), IPV6_RSSBUCKETID, IPPROTO_IPV6);
+ *mp = sbcreatecontrol(&rss_bucketid, sizeof(uint32_t),
+ IPV6_RSSBUCKETID, IPPROTO_IPV6, M_NOWAIT);
if (*mp)
mp = &(*mp)->m_next;
}
@@ -1583,8 +1582,8 @@ ip6_notify_pmtu(struct inpcb *inp, struct sockaddr_in6 *dst, u_int32_t mtu)
if (sa6_recoverscope(&mtuctl.ip6m_addr))
return;
- if ((m_mtu = sbcreatecontrol((caddr_t)&mtuctl, sizeof(mtuctl),
- IPV6_PATHMTU, IPPROTO_IPV6)) == NULL)
+ if ((m_mtu = sbcreatecontrol(&mtuctl, sizeof(mtuctl), IPV6_PATHMTU,
+ IPPROTO_IPV6, M_NOWAIT)) == NULL)
return;
so = inp->inp_socket;
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index 20b78009854e..9b3bce7db7bc 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -183,8 +183,9 @@ udp6_append(struct inpcb *inp, struct mbuf *n, int off,
inp->inp_socket->so_options & SO_TIMESTAMP)
ip6_savecontrol(inp, n, &opts);
if ((inp->inp_vflag & INP_IPV6) && (inp->inp_flags2 & INP_ORIGDSTADDR)) {
- tmp_opts = sbcreatecontrol((caddr_t)&fromsa[1],
- sizeof(struct sockaddr_in6), IPV6_ORIGDSTADDR, IPPROTO_IPV6);
+ tmp_opts = sbcreatecontrol(&fromsa[1],
+ sizeof(struct sockaddr_in6), IPV6_ORIGDSTADDR,
+ IPPROTO_IPV6, M_NOWAIT);
if (tmp_opts) {
if (opts) {
tmp_opts->m_next = opts;
diff --git a/sys/sys/sockbuf.h b/sys/sys/sockbuf.h
index 2484407d557c..efa87b1f2378 100644
--- a/sys/sys/sockbuf.h
+++ b/sys/sys/sockbuf.h
@@ -158,10 +158,7 @@ void sbappendrecord(struct sockbuf *sb, struct mbuf *m0);
void sbappendrecord_locked(struct sockbuf *sb, struct mbuf *m0);
void sbcompress(struct sockbuf *sb, struct mbuf *m, struct mbuf *n);
struct mbuf *
- sbcreatecontrol(caddr_t p, int size, int type, int level);
-struct mbuf *
- sbcreatecontrol_how(void *p, int size, int type, int level,
- int wait);
+ sbcreatecontrol(void *p, int size, int type, int level, int wait);
void sbdestroy(struct socket *, sb_which);
void sbdrop(struct sockbuf *sb, int len);
void sbdrop_locked(struct sockbuf *sb, int len);