Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf9bae0e authored by Alexei Starovoitov's avatar Alexei Starovoitov
Browse files

Merge branch 'sockmap-fixes'



Daniel Borkmann says:

====================
Two sockmap fixes in bpf_tcp_sendmsg(), and one fix for the
sockmap kernel selftest. Thanks!
====================

Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parents 74682128 3c6ed988
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1048,12 +1048,12 @@ static int bpf_tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
	timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);

	while (msg_data_left(msg)) {
		struct sk_msg_buff *m;
		struct sk_msg_buff *m = NULL;
		bool enospc = false;
		int copy;

		if (sk->sk_err) {
			err = sk->sk_err;
			err = -sk->sk_err;
			goto out_err;
		}

@@ -1116,9 +1116,12 @@ static int bpf_tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
		set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
wait_for_memory:
		err = sk_stream_wait_memory(sk, &timeo);
		if (err)
		if (err) {
			if (m && m != psock->cork)
				free_start_sg(sk, m);
			goto out_err;
		}
	}
out_err:
	if (err < 0)
		err = sk_stream_error(sk, msg->msg_flags, err);
+1 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ static int msg_loop(int fd, int iov_count, int iov_length, int cnt,
		while (s->bytes_recvd < total_bytes) {
			if (txmsg_cork) {
				timeout.tv_sec = 0;
				timeout.tv_usec = 1000;
				timeout.tv_usec = 300000;
			} else {
				timeout.tv_sec = 1;
				timeout.tv_usec = 0;