/[base]
ViewVC logotype

Revision 263820


Jump to revision: Previous Next
Author: asomers
Date: Thu Mar 27 16:47:35 2014 UTC (10 years, 3 months ago)
Changed paths: 5
Log Message:
MFC r262867

Fix PR kern/185813 "SOCK_SEQPACKET AF_UNIX sockets with asymmetrical buffers
drop packets".  It was caused by a check for the space available in a
sockbuf, but it was checking the wrong sockbuf.

sys/sys/sockbuf.h
sys/kern/uipc_sockbuf.c
	Add sbappendaddr_nospacecheck_locked(), which is just like
	sbappendaddr_locked but doesn't validate the receiving socket's space.
	Factor out common code into sbappendaddr_locked_internal().  We
	shouldn't simply make sbappendaddr_locked check the space and then call
	sbappendaddr_nospacecheck_locked, because that would cause the O(n)
	function m_length to be called twice.

sys/kern/uipc_usrreq.c
	Use sbappendaddr_nospacecheck_locked for SOCK_SEQPACKET sockets,
	because the receiving sockbuf's size limit is irrelevant.

tests/sys/kern/unix_seqpacket_test.c
	Now that 185813 is fixed, pipe_128k_8k fails intermittently due to
	185812.  Make it fail every time by adding a usleep after starting the
	writer thread and before starting the reader thread in test_pipe.  That
	gives the writer time to fill up its send buffer.  Also, clear the
	expected failure message due to 185813.  It actually said "185812", but
	that was a typo.

PR:		kern/185813


Changed paths

Path Details
Directorystable/10/ modified , props changed
Directorystable/10/sys/kern/uipc_sockbuf.c modified , text changed
Directorystable/10/sys/kern/uipc_usrreq.c modified , text changed
Directorystable/10/sys/sys/sockbuf.h modified , text changed
Directorystable/10/tests/sys/kern/unix_seqpacket_test.c modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27