sdp_main.c (233198) | sdp_main.c (243882) |
---|---|
1 2/*- 3 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995 4 * The Regents of the University of California. All rights reserved. 5 * Copyright (c) 2004 The FreeBSD Foundation. All rights reserved. 6 * Copyright (c) 2004-2008 Robert N. M. Watson. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 914 unchanged lines hidden (view full) --- 923 struct mbuf *n; 924 int error; 925 int cnt; 926 927 error = 0; 928 ssk = sdp_sk(so); 929 KASSERT(m->m_flags & M_PKTHDR, 930 ("sdp_send: %p no packet header", m)); | 1 2/*- 3 * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995 4 * The Regents of the University of California. All rights reserved. 5 * Copyright (c) 2004 The FreeBSD Foundation. All rights reserved. 6 * Copyright (c) 2004-2008 Robert N. M. Watson. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 914 unchanged lines hidden (view full) --- 923 struct mbuf *n; 924 int error; 925 int cnt; 926 927 error = 0; 928 ssk = sdp_sk(so); 929 KASSERT(m->m_flags & M_PKTHDR, 930 ("sdp_send: %p no packet header", m)); |
931 M_PREPEND(m, SDP_HEAD_SIZE, M_WAIT); | 931 M_PREPEND(m, SDP_HEAD_SIZE, M_WAITOK); |
932 mtod(m, struct sdp_bsdh *)->mid = SDP_MID_DATA; 933 for (n = m, cnt = 0; n->m_next; n = n->m_next) 934 cnt++; 935 if (cnt > SDP_MAX_SEND_SGES) { | 932 mtod(m, struct sdp_bsdh *)->mid = SDP_MID_DATA; 933 for (n = m, cnt = 0; n->m_next; n = n->m_next) 934 cnt++; 935 if (cnt > SDP_MAX_SEND_SGES) { |
936 n = m_collapse(m, M_WAIT, SDP_MAX_SEND_SGES); | 936 n = m_collapse(m, M_WAITOK, SDP_MAX_SEND_SGES); |
937 if (n == NULL) { 938 m_freem(m); 939 return (EMSGSIZE); 940 } 941 m = n; 942 for (cnt = 0; n->m_next; n = n->m_next) 943 cnt++; 944 } --- 246 unchanged lines hidden (view full) --- 1191soreceive_rcvoob(struct socket *so, struct uio *uio, int flags) 1192{ 1193 struct protosw *pr = so->so_proto; 1194 struct mbuf *m; 1195 int error; 1196 1197 KASSERT(flags & MSG_OOB, ("soreceive_rcvoob: (flags & MSG_OOB) == 0")); 1198 | 937 if (n == NULL) { 938 m_freem(m); 939 return (EMSGSIZE); 940 } 941 m = n; 942 for (cnt = 0; n->m_next; n = n->m_next) 943 cnt++; 944 } --- 246 unchanged lines hidden (view full) --- 1191soreceive_rcvoob(struct socket *so, struct uio *uio, int flags) 1192{ 1193 struct protosw *pr = so->so_proto; 1194 struct mbuf *m; 1195 int error; 1196 1197 KASSERT(flags & MSG_OOB, ("soreceive_rcvoob: (flags & MSG_OOB) == 0")); 1198 |
1199 m = m_get(M_WAIT, MT_DATA); | 1199 m = m_get(M_WAITOK, MT_DATA); |
1200 error = (*pr->pr_usrreqs->pru_rcvoob)(so, m, flags & MSG_PEEK); 1201 if (error) 1202 goto bad; 1203 do { 1204 error = uiomove(mtod(m, void *), 1205 (int) min(uio->uio_resid, m->m_len), uio); 1206 m = m_free(m); 1207 } while (uio->uio_resid && error == 0 && m); --- 138 unchanged lines hidden (view full) --- 1346 SB_EMPTY_FIXUP(sb); 1347 n->m_next = NULL; 1348 } 1349 /* Copy the remainder. */ 1350 if (len > 0) { 1351 KASSERT(sb->sb_mb != NULL, 1352 ("%s: len > 0 && sb->sb_mb empty", __func__)); 1353 | 1200 error = (*pr->pr_usrreqs->pru_rcvoob)(so, m, flags & MSG_PEEK); 1201 if (error) 1202 goto bad; 1203 do { 1204 error = uiomove(mtod(m, void *), 1205 (int) min(uio->uio_resid, m->m_len), uio); 1206 m = m_free(m); 1207 } while (uio->uio_resid && error == 0 && m); --- 138 unchanged lines hidden (view full) --- 1346 SB_EMPTY_FIXUP(sb); 1347 n->m_next = NULL; 1348 } 1349 /* Copy the remainder. */ 1350 if (len > 0) { 1351 KASSERT(sb->sb_mb != NULL, 1352 ("%s: len > 0 && sb->sb_mb empty", __func__)); 1353 |
1354 m = m_copym(sb->sb_mb, 0, len, M_DONTWAIT); | 1354 m = m_copym(sb->sb_mb, 0, len, M_NOWAIT); |
1355 if (m == NULL) 1356 len = 0; /* Don't flush data from sockbuf. */ 1357 else 1358 uio->uio_resid -= m->m_len; 1359 if (*mp0 != NULL) 1360 n->m_next = m; 1361 else 1362 *mp0 = m; --- 600 unchanged lines hidden --- | 1355 if (m == NULL) 1356 len = 0; /* Don't flush data from sockbuf. */ 1357 else 1358 uio->uio_resid -= m->m_len; 1359 if (*mp0 != NULL) 1360 n->m_next = m; 1361 else 1362 *mp0 = m; --- 600 unchanged lines hidden --- |