Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Nov 2014 12:37:21 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r275325 - in projects/building-blocks/sys: arm/arm boot/i386/boot2 kern netinet sys
Message-ID:  <201411301237.sAUCbLBx046976@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Sun Nov 30 12:37:20 2014
New Revision: 275325
URL: https://svnweb.freebsd.org/changeset/base/275325

Log:
  MFhead @ r275324

Modified:
  projects/building-blocks/sys/arm/arm/cpufunc_asm_armv5.S
  projects/building-blocks/sys/arm/arm/cpufunc_asm_xscale_c3.S
  projects/building-blocks/sys/arm/arm/fusu.S
  projects/building-blocks/sys/arm/arm/support.S
  projects/building-blocks/sys/boot/i386/boot2/boot2.c
  projects/building-blocks/sys/kern/uipc_sockbuf.c
  projects/building-blocks/sys/netinet/tcp_usrreq.c
  projects/building-blocks/sys/sys/sockbuf.h
Directory Properties:
  projects/building-blocks/   (props changed)
  projects/building-blocks/etc/   (props changed)
  projects/building-blocks/sys/   (props changed)
  projects/building-blocks/sys/boot/   (props changed)

Modified: projects/building-blocks/sys/arm/arm/cpufunc_asm_armv5.S
==============================================================================
--- projects/building-blocks/sys/arm/arm/cpufunc_asm_armv5.S	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/arm/arm/cpufunc_asm_armv5.S	Sun Nov 30 12:37:20 2014	(r275325)
@@ -194,7 +194,6 @@ ENTRY(armv5_idcache_wbinv_range)
 END(armv5_idcache_wbinv_range)
 
 ENTRY_NP(armv5_idcache_wbinv_all)
-armv5_idcache_wbinv_all:
 .Larmv5_idcache_wbinv_all:
 	/*
 	 * We assume that the code here can never be out of sync with the

Modified: projects/building-blocks/sys/arm/arm/cpufunc_asm_xscale_c3.S
==============================================================================
--- projects/building-blocks/sys/arm/arm/cpufunc_asm_xscale_c3.S	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/arm/arm/cpufunc_asm_xscale_c3.S	Sun Nov 30 12:37:20 2014	(r275325)
@@ -144,7 +144,6 @@ __FBSDID("$FreeBSD$");
 
 
 ENTRY_NP(xscalec3_cache_syncI)
-xscalec3_cache_purgeID:
 EENTRY_NP(xscalec3_cache_purgeID)
 	mcr	p15, 0, r0, c7, c5, 0	/* flush I cache (D cleaned below) */
 EENTRY_NP(xscalec3_cache_cleanID)

Modified: projects/building-blocks/sys/arm/arm/fusu.S
==============================================================================
--- projects/building-blocks/sys/arm/arm/fusu.S	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/arm/arm/fusu.S	Sun Nov 30 12:37:20 2014	(r275325)
@@ -129,7 +129,7 @@ EENTRY_NP(fuword32)
 	str	r1, [r2, #PCB_ONFAULT]
 	mov	r0, r3
 	RET
-END(fuword32)
+EEND(fuword32)
 END(fuword)
 
 /*
@@ -295,7 +295,7 @@ EENTRY_NP(suword32)
 	mov	r0, #0x00000000
 	str	r0, [r2, #PCB_ONFAULT]
 	RET
-END(suword32)
+EEND(suword32)
 END(suword)
 
 /*

Modified: projects/building-blocks/sys/arm/arm/support.S
==============================================================================
--- projects/building-blocks/sys/arm/arm/support.S	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/arm/arm/support.S	Sun Nov 30 12:37:20 2014	(r275325)
@@ -130,7 +130,7 @@ ENTRY(bzero)
 .Lnormal0:
 	mov	r3, #0x00
 	b	do_memset
-EEND(bzero)
+END(bzero)
 /* LINTSTUB: Func: void *memset(void *, int, size_t) */
 ENTRY(memset)
 	and	r3, r1, #0xff		/* We deal with bytes */

Modified: projects/building-blocks/sys/boot/i386/boot2/boot2.c
==============================================================================
--- projects/building-blocks/sys/boot/i386/boot2/boot2.c	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/boot/i386/boot2/boot2.c	Sun Nov 30 12:37:20 2014	(r275325)
@@ -418,7 +418,7 @@ parse()
 #if SERIAL
 		} else if (c == 'S') {
 		    j = 0;
-		    while ((i = *arg++ - '0') <= 9)
+		    while ((unsigned int)(i = *arg++ - '0') <= 9)
 			j = j * 10 + i;
 		    if (j > 0 && i == -'0') {
 			comspeed = j;

Modified: projects/building-blocks/sys/kern/uipc_sockbuf.c
==============================================================================
--- projects/building-blocks/sys/kern/uipc_sockbuf.c	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/kern/uipc_sockbuf.c	Sun Nov 30 12:37:20 2014	(r275325)
@@ -69,6 +69,60 @@ static struct mbuf	*sbcut_internal(struc
 static void	sbflush_internal(struct sockbuf *sb);
 
 /*
+ * Adjust sockbuf state reflecting allocation of m.
+ */
+void
+sballoc(struct sockbuf *sb, struct mbuf *m)
+{
+
+	SOCKBUF_LOCK_ASSERT(sb);
+
+	sb->sb_cc += m->m_len;
+
+	if (m->m_type != MT_DATA && m->m_type != MT_OOBDATA)
+		sb->sb_ctl += m->m_len;
+
+	sb->sb_mbcnt += MSIZE;
+	sb->sb_mcnt += 1;
+
+	if (m->m_flags & M_EXT) {
+		sb->sb_mbcnt += m->m_ext.ext_size;
+		sb->sb_ccnt += 1;
+	}
+}
+
+/*
+ * Adjust sockbuf state reflecting freeing of m.
+ */
+void
+sbfree(struct sockbuf *sb, struct mbuf *m)
+{
+
+#if 0	/* XXX: not yet: soclose() call path comes here w/o lock. */
+	SOCKBUF_LOCK_ASSERT(sb);
+#endif
+
+	sb->sb_cc -= m->m_len;
+
+	if (m->m_type != MT_DATA && m->m_type != MT_OOBDATA)
+		sb->sb_ctl -= m->m_len;
+
+	sb->sb_mbcnt -= MSIZE;
+	sb->sb_mcnt -= 1;
+	if (m->m_flags & M_EXT) {
+		sb->sb_mbcnt -= m->m_ext.ext_size;
+		sb->sb_ccnt -= 1;
+	}
+
+	if (sb->sb_sndptr == m) {
+		sb->sb_sndptr = NULL;
+		sb->sb_sndptroff = 0;
+	}
+	if (sb->sb_sndptroff != 0)
+		sb->sb_sndptroff -= m->m_len;
+}
+
+/*
  * Socantsendmore indicates that no more data will be sent on the socket; it
  * would normally be applied to a socket when the user informs the system
  * that no more data is to be sent, by the protocol code (in case
@@ -553,28 +607,36 @@ sbappendstream(struct sockbuf *sb, struc
 
 #ifdef SOCKBUF_DEBUG
 void
-sbcheck(struct sockbuf *sb)
+sbcheck(struct sockbuf *sb, const char *file, int line)
 {
-	struct mbuf *m;
-	struct mbuf *n = 0;
-	u_long len = 0, mbcnt = 0;
+	struct mbuf *m, *n;
+	u_long cc, mbcnt;
 
 	SOCKBUF_LOCK_ASSERT(sb);
 
+	cc = mbcnt = 0;
+
 	for (m = sb->sb_mb; m; m = n) {
 	    n = m->m_nextpkt;
 	    for (; m; m = m->m_next) {
-		len += m->m_len;
+		if (m->m_len == 0) {
+			printf("sb %p empty mbuf %p\n", sb, m);
+			goto fail;
+		}
+		cc += m->m_len;
 		mbcnt += MSIZE;
 		if (m->m_flags & M_EXT) /*XXX*/ /* pretty sure this is bogus */
 			mbcnt += m->m_ext.ext_size;
 	    }
 	}
-	if (len != sb->sb_cc || mbcnt != sb->sb_mbcnt) {
-		printf("cc %ld != %u || mbcnt %ld != %u\n", len, sb->sb_cc,
+	if (cc != sb->sb_cc || mbcnt != sb->sb_mbcnt) {
+		printf("cc %ld != %u || mbcnt %ld != %u\n", cc, sb->sb_cc,
 		    mbcnt, sb->sb_mbcnt);
-		panic("sbcheck");
+		goto fail;
 	}
+	return;
+fail:
+	panic("%s from %s:%u", __func__, file, line);
 }
 #endif
 

Modified: projects/building-blocks/sys/netinet/tcp_usrreq.c
==============================================================================
--- projects/building-blocks/sys/netinet/tcp_usrreq.c	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/netinet/tcp_usrreq.c	Sun Nov 30 12:37:20 2014	(r275325)
@@ -925,7 +925,7 @@ tcp_usr_send(struct socket *so, int flag
 			tp->snd_wnd = TTCP_CLIENT_SND_WND;
 			tcp_mss(tp, -1);
 		}
-		tp->snd_up = tp->snd_una + so->so_snd.sb_cc;
+		tp->snd_up = tp->snd_una + sbavail(&so->so_snd);
 		tp->t_flags |= TF_FORCEDATA;
 		error = tcp_output(tp);
 		tp->t_flags &= ~TF_FORCEDATA;

Modified: projects/building-blocks/sys/sys/sockbuf.h
==============================================================================
--- projects/building-blocks/sys/sys/sockbuf.h	Sun Nov 30 12:34:48 2014	(r275324)
+++ projects/building-blocks/sys/sys/sockbuf.h	Sun Nov 30 12:37:20 2014	(r275325)
@@ -136,7 +136,6 @@ int	sbappendcontrol_locked(struct sockbu
 	    struct mbuf *control);
 void	sbappendrecord(struct sockbuf *sb, struct mbuf *m0);
 void	sbappendrecord_locked(struct sockbuf *sb, struct mbuf *m0);
-void	sbcheck(struct sockbuf *sb);
 void	sbcompress(struct sockbuf *sb, struct mbuf *m, struct mbuf *n);
 struct mbuf *
 	sbcreatecontrol(caddr_t p, int size, int type, int level);
@@ -164,6 +163,8 @@ void	sbtoxsockbuf(struct sockbuf *sb, st
 int	sbwait(struct sockbuf *sb);
 int	sblock(struct sockbuf *sb, int flags);
 void	sbunlock(struct sockbuf *sb);
+void	sballoc(struct sockbuf *, struct mbuf *);
+void	sbfree(struct sockbuf *, struct mbuf *);
 
 /*
  * Return how much data is available to be taken out of socket
@@ -213,38 +214,6 @@ sbspace(struct sockbuf *sb)
 	return((bleft < mleft) ? bleft : mleft);
 }
 
-/* adjust counters in sb reflecting allocation of m */
-#define	sballoc(sb, m) { \
-	(sb)->sb_cc += (m)->m_len; \
-	if ((m)->m_type != MT_DATA && (m)->m_type != MT_OOBDATA) \
-		(sb)->sb_ctl += (m)->m_len; \
-	(sb)->sb_mbcnt += MSIZE; \
-	(sb)->sb_mcnt += 1; \
-	if ((m)->m_flags & M_EXT) { \
-		(sb)->sb_mbcnt += (m)->m_ext.ext_size; \
-		(sb)->sb_ccnt += 1; \
-	} \
-}
-
-/* adjust counters in sb reflecting freeing of m */
-#define	sbfree(sb, m) { \
-	(sb)->sb_cc -= (m)->m_len; \
-	if ((m)->m_type != MT_DATA && (m)->m_type != MT_OOBDATA) \
-		(sb)->sb_ctl -= (m)->m_len; \
-	(sb)->sb_mbcnt -= MSIZE; \
-	(sb)->sb_mcnt -= 1; \
-	if ((m)->m_flags & M_EXT) { \
-		(sb)->sb_mbcnt -= (m)->m_ext.ext_size; \
-		(sb)->sb_ccnt -= 1; \
-	} \
-	if ((sb)->sb_sndptr == (m)) { \
-		(sb)->sb_sndptr = NULL; \
-		(sb)->sb_sndptroff = 0; \
-	} \
-	if ((sb)->sb_sndptroff != 0) \
-		(sb)->sb_sndptroff -= (m)->m_len; \
-}
-
 #define SB_EMPTY_FIXUP(sb) do {						\
 	if ((sb)->sb_mb == NULL) {					\
 		(sb)->sb_mbtail = NULL;					\
@@ -254,13 +223,15 @@ sbspace(struct sockbuf *sb)
 
 #ifdef SOCKBUF_DEBUG
 void	sblastrecordchk(struct sockbuf *, const char *, int);
-#define	SBLASTRECORDCHK(sb)	sblastrecordchk((sb), __FILE__, __LINE__)
-
 void	sblastmbufchk(struct sockbuf *, const char *, int);
+void	sbcheck(struct sockbuf *, const char *, int);
+#define	SBLASTRECORDCHK(sb)	sblastrecordchk((sb), __FILE__, __LINE__)
 #define	SBLASTMBUFCHK(sb)	sblastmbufchk((sb), __FILE__, __LINE__)
+#define	SBCHECK(sb)		sbcheck((sb), __FILE__, __LINE__)
 #else
-#define	SBLASTRECORDCHK(sb)      /* nothing */
-#define	SBLASTMBUFCHK(sb)        /* nothing */
+#define	SBLASTRECORDCHK(sb)	do {} while (0)
+#define	SBLASTMBUFCHK(sb)	do {} while (0)
+#define	SBCHECK(sb)		do {} while (0)
 #endif /* SOCKBUF_DEBUG */
 
 #endif /* _KERNEL */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411301237.sAUCbLBx046976>