svn commit: r275325 - in projects/building-blocks/sys: arm/arm boot/i386/boot2 kern netinet sys
Garrett Cooper
ngie at FreeBSD.org
Sun Nov 30 12:37:23 UTC 2014
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 */
More information about the svn-src-projects
mailing list