Revision 3504bb639ec793c181de6e33a205fc8ca6cf32bf authored by David S. Miller on 29 September 2015, 20:47:08 UTC, committed by David S. Miller on 29 September 2015, 20:47:08 UTC
Aaron Conole says:

====================
af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag

This patch set implements a bugfix for kernel.org bugzilla #12323, allowing
MSG_PEEK to return all queued data on the unix domain socket, not just the
data contained in a single SKB.

This is the v3 version of this patch, which includes a suggested modification
by Eric Dumazet to convert the unix_sk() conversion macro to a static inline
function. These patches are independent and can be applied separately.

This set was tested over a 24-hour period, utilizing a loop continually
executing the bugzilla issue attached python code. It was instrumented with
a pr_err_once() ([   13.798683] unix: went there at least one time).

v2->v3:
 - Added Eric Dumazet's suggestion for #define to static inline
 - Fixed an issue calling unix_state_lock() with an invalid argument

v3->v4:
 - Eliminated an XXX comment
 - Changed from goto unlock to explicit unix_state_unlock() and break
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2 parent s 2103d6b + 9f389e3
History
File Mode Size
Makefile -rw-r--r-- 2.1 KB
bpf_helpers.h -rw-r--r-- 3.2 KB
bpf_load.c -rw-r--r-- 7.5 KB
bpf_load.h -rw-r--r-- 755 bytes
lathist_kern.c -rw-r--r-- 2.1 KB
lathist_user.c -rw-r--r-- 2.0 KB
libbpf.c -rw-r--r-- 3.0 KB
libbpf.h -rw-r--r-- 4.9 KB
sock_example.c -rw-r--r-- 2.7 KB
sockex1_kern.c -rw-r--r-- 648 bytes
sockex1_user.c -rw-r--r-- 979 bytes
sockex2_kern.c -rw-r--r-- 4.7 KB
sockex2_user.c -rw-r--r-- 965 bytes
sockex3_kern.c -rw-r--r-- 6.1 KB
sockex3_user.c -rw-r--r-- 1.3 KB
tcbpf1_kern.c -rw-r--r-- 2.0 KB
test_maps.c -rw-r--r-- 7.5 KB
test_verifier.c -rw-r--r-- 24.8 KB
tracex1_kern.c -rw-r--r-- 1.4 KB
tracex1_user.c -rw-r--r-- 403 bytes
tracex2_kern.c -rw-r--r-- 2.3 KB
tracex2_user.c -rw-r--r-- 2.9 KB
tracex3_kern.c -rw-r--r-- 2.1 KB
tracex3_user.c -rw-r--r-- 2.9 KB
tracex4_kern.c -rw-r--r-- 1.3 KB
tracex4_user.c -rw-r--r-- 1.4 KB
tracex5_kern.c -rw-r--r-- 1.9 KB
tracex5_user.c -rw-r--r-- 973 bytes
tracex6_kern.c -rw-r--r-- 611 bytes
tracex6_user.c -rw-r--r-- 1.4 KB

back to top