Deleted Added
full compact
uipc_mbuf.c (254799) uipc_mbuf.c (254804)
1/*-
2 * Copyright (c) 1982, 1986, 1988, 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)uipc_mbuf.c 8.2 (Berkeley) 1/4/94
30 */
31
32#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1982, 1986, 1988, 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * @(#)uipc_mbuf.c 8.2 (Berkeley) 1/4/94
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/kern/uipc_mbuf.c 254799 2013-08-24 16:57:44Z andre $");
33__FBSDID("$FreeBSD: head/sys/kern/uipc_mbuf.c 254804 2013-08-24 19:51:18Z andre $");
34
35#include "opt_param.h"
36#include "opt_mbuf_stress_test.h"
37#include "opt_mbuf_profiling.h"
38
39#include <sys/param.h>
40#include <sys/systm.h>
41#include <sys/kernel.h>

--- 391 unchanged lines hidden (view full) ---

433 b = (caddr_t)(a + (m->m_flags & M_EXT ? m->m_ext.ext_size :
434 ((m->m_flags & M_PKTHDR) ? MHLEN : MLEN)));
435 if ((caddr_t)m->m_data < a)
436 M_SANITY_ACTION("m_data outside mbuf data range left");
437 if ((caddr_t)m->m_data > b)
438 M_SANITY_ACTION("m_data outside mbuf data range right");
439 if ((caddr_t)m->m_data + m->m_len > b)
440 M_SANITY_ACTION("m_data + m_len exeeds mbuf space");
34
35#include "opt_param.h"
36#include "opt_mbuf_stress_test.h"
37#include "opt_mbuf_profiling.h"
38
39#include <sys/param.h>
40#include <sys/systm.h>
41#include <sys/kernel.h>

--- 391 unchanged lines hidden (view full) ---

433 b = (caddr_t)(a + (m->m_flags & M_EXT ? m->m_ext.ext_size :
434 ((m->m_flags & M_PKTHDR) ? MHLEN : MLEN)));
435 if ((caddr_t)m->m_data < a)
436 M_SANITY_ACTION("m_data outside mbuf data range left");
437 if ((caddr_t)m->m_data > b)
438 M_SANITY_ACTION("m_data outside mbuf data range right");
439 if ((caddr_t)m->m_data + m->m_len > b)
440 M_SANITY_ACTION("m_data + m_len exeeds mbuf space");
441 if ((m->m_flags & M_PKTHDR) && m->m_pkthdr.header) {
442 if ((caddr_t)m->m_pkthdr.header < a ||
443 (caddr_t)m->m_pkthdr.header > b)
444 M_SANITY_ACTION("m_pkthdr.header outside mbuf data range");
445 }
446
447 /* m->m_nextpkt may only be set on first mbuf in chain. */
448 if (m != m0 && m->m_nextpkt != NULL) {
449 if (sanitize) {
450 m_freem(m->m_nextpkt);
451 m->m_nextpkt = (struct mbuf *)0xDEADC0DE;
452 } else
453 M_SANITY_ACTION("m->m_nextpkt on in-chain mbuf");

--- 287 unchanged lines hidden (view full) ---

741 /* Expand first/last mbuf to cluster if possible. */
742 if (!prep && !(mm->m_flags & M_EXT) && len > M_TRAILINGSPACE(mm)) {
743 bcopy(mm->m_data, &buf, mm->m_len);
744 m_clget(mm, how);
745 if (!(mm->m_flags & M_EXT))
746 return NULL;
747 bcopy(&buf, mm->m_ext.ext_buf, mm->m_len);
748 mm->m_data = mm->m_ext.ext_buf;
441
442 /* m->m_nextpkt may only be set on first mbuf in chain. */
443 if (m != m0 && m->m_nextpkt != NULL) {
444 if (sanitize) {
445 m_freem(m->m_nextpkt);
446 m->m_nextpkt = (struct mbuf *)0xDEADC0DE;
447 } else
448 M_SANITY_ACTION("m->m_nextpkt on in-chain mbuf");

--- 287 unchanged lines hidden (view full) ---

736 /* Expand first/last mbuf to cluster if possible. */
737 if (!prep && !(mm->m_flags & M_EXT) && len > M_TRAILINGSPACE(mm)) {
738 bcopy(mm->m_data, &buf, mm->m_len);
739 m_clget(mm, how);
740 if (!(mm->m_flags & M_EXT))
741 return NULL;
742 bcopy(&buf, mm->m_ext.ext_buf, mm->m_len);
743 mm->m_data = mm->m_ext.ext_buf;
749 mm->m_pkthdr.header = NULL;
750 }
751 if (prep && !(mm->m_flags & M_EXT) && len > M_LEADINGSPACE(mm)) {
752 bcopy(mm->m_data, &buf, mm->m_len);
753 m_clget(mm, how);
754 if (!(mm->m_flags & M_EXT))
755 return NULL;
756 bcopy(&buf, (caddr_t *)mm->m_ext.ext_buf +
757 mm->m_ext.ext_size - mm->m_len, mm->m_len);
758 mm->m_data = (caddr_t)mm->m_ext.ext_buf +
759 mm->m_ext.ext_size - mm->m_len;
744 }
745 if (prep && !(mm->m_flags & M_EXT) && len > M_LEADINGSPACE(mm)) {
746 bcopy(mm->m_data, &buf, mm->m_len);
747 m_clget(mm, how);
748 if (!(mm->m_flags & M_EXT))
749 return NULL;
750 bcopy(&buf, (caddr_t *)mm->m_ext.ext_buf +
751 mm->m_ext.ext_size - mm->m_len, mm->m_len);
752 mm->m_data = (caddr_t)mm->m_ext.ext_buf +
753 mm->m_ext.ext_size - mm->m_len;
760 mm->m_pkthdr.header = NULL;
761 }
762
763 /* Append/prepend as many mbuf (clusters) as necessary to fit len. */
764 if (!prep && len > M_TRAILINGSPACE(mm)) {
765 if (!m_getm(mm, len - M_TRAILINGSPACE(mm), how, MT_DATA))
766 return NULL;
767 }
768 if (prep && len > M_LEADINGSPACE(mm)) {

--- 1413 unchanged lines hidden ---
754 }
755
756 /* Append/prepend as many mbuf (clusters) as necessary to fit len. */
757 if (!prep && len > M_TRAILINGSPACE(mm)) {
758 if (!m_getm(mm, len - M_TRAILINGSPACE(mm), how, MT_DATA))
759 return NULL;
760 }
761 if (prep && len > M_LEADINGSPACE(mm)) {

--- 1413 unchanged lines hidden ---