diff options
author | rrs <rrs@FreeBSD.org> | 2007-12-07 01:32:14 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-12-07 01:32:14 +0000 |
commit | fad90600c19b80ff5cafb5fd89a160912b9a6e81 (patch) | |
tree | 28675f5e9591ab08a3868a32b2e938383f8959ab /sys/netinet/sctp_usrreq.c | |
parent | e85902857b909623d774f2b8773d681b4116c23a (diff) | |
download | FreeBSD-src-fad90600c19b80ff5cafb5fd89a160912b9a6e81.zip FreeBSD-src-fad90600c19b80ff5cafb5fd89a160912b9a6e81.tar.gz |
- More fixes for lock misses on the transfer of data to
the sent_queue. Sometimes I wonder why any code
ever works :-)
- Fix the pad of the last mbuf routine, It was working improperly
on non-4 byte aligned chunks which could cause memory overruns.
MFC after: 1 week
Diffstat (limited to 'sys/netinet/sctp_usrreq.c')
-rw-r--r-- | sys/netinet/sctp_usrreq.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c index aea2db5..0c6bf6f 100644 --- a/sys/netinet/sctp_usrreq.c +++ b/sys/netinet/sctp_usrreq.c @@ -4152,6 +4152,11 @@ sctp_listen(struct socket *so, int backlog, struct thread *p) } SOCK_LOCK(so); } else { + if (backlog != 0) { + inp->sctp_flags |= SCTP_PCB_FLAGS_LISTENING; + } else { + inp->sctp_flags &= ~SCTP_PCB_FLAGS_LISTENING; + } SCTP_INP_RUNLOCK(inp); } /* It appears for 7.0 and on, we must always call this. */ |