rem: if (n->m_len >= len)
add: if ((int) n->m_len >= len)
context: struct mbuf *m_pullup(struct mbuf *n, int len){	struct mbuf *m;	int count;	int space;	if (n->m_len <= len)		return n;	/*	 * If first mbuf has no cluster, and has room for len bytes	 * without shifting current data, pullup into it,	 * otherwise allocate a new mbuf to prepend to the chain.	 */	if ((n->m_flags & M_EXT) == 0 &&	    n->m_data + len < &n->m_dat[MLEN] && n->m_next) {		if (n->m_len >= len)			return (n);		m = n;		n = n->m_next;		len -= m->m_len;	} else {		if (len > MHLEN)			goto bad;		MGET(m, n->m_type);		if (m == NULL)			goto bad;		m->m_len = 0;		if (n->m_flags & M_PKTHDR) {			M_MOVE_PKTHDR(m, n);		}	}	space = &m->m_dat[MLEN] - (m->m_data + m->m_len);	do {		count = min(min(max(len, max_protohdr), space), n->m_len);		memcpy((void *)(mtod(m, caddr_t) + m->m_len), mtod(n, void *), (uint)count);		len -= count;		m->m_len += count;		n->m_len -= count;		space -= count;		if (n->m_len)			n->m_data += count;		else			n = m_free(n);	} while (len > 0 && n);	if (len > 0) {printf("m_pullup: failed: len = %d\n", len);		(void)m_free(m);		goto bad;	}	m->m_next = n;	return (m);bad:	m_freem(n);	MPFail++;	return (NULL);}