On Tue, Oct 16, 2018 at 10:36:01AM -0700, John Fastabend wrote: > When converting sockmap to new skmsg generic data structures we missed > that the recvmsg handler did not correctly use sg.size and instead was > using individual elements length. The result is if a sock is closed > with outstanding data we omit the call to sk_mem_uncharge() and can > get the warning below. > > [ 66.728282] WARNING: CPU: 6 PID: 5783 at net/core/stream.c:206 > sk_stream_kill_queues+0x1fa/0x210 > > To fix this correct the redirect handler to xfer the size along with > the scatterlist and also decrement the size from the recvmsg handler. > Now when a sock is closed the remaining 'size' will be decremented > with sk_mem_uncharge(). > > Signed-off-by: John Fastabend <john.fastab...@gmail.com>
Acked-by: Alexei Starovoitov <a...@kernel.org>