Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
One conflict in the BPF samples Makefile, some fixes in 'net' whilst we were converting over to Makefile.target rules in 'net-next'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -902,15 +902,9 @@ int tls_sw_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
|
||||
if (msg->msg_flags & ~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL))
|
||||
return -ENOTSUPP;
|
||||
|
||||
mutex_lock(&tls_ctx->tx_lock);
|
||||
lock_sock(sk);
|
||||
|
||||
/* Wait till there is any pending write on socket */
|
||||
if (unlikely(sk->sk_write_pending)) {
|
||||
ret = wait_on_pending_writer(sk, &timeo);
|
||||
if (unlikely(ret))
|
||||
goto send_end;
|
||||
}
|
||||
|
||||
if (unlikely(msg->msg_controllen)) {
|
||||
ret = tls_proccess_cmsg(sk, msg, &record_type);
|
||||
if (ret) {
|
||||
@@ -1096,6 +1090,7 @@ send_end:
|
||||
ret = sk_stream_error(sk, msg->msg_flags, ret);
|
||||
|
||||
release_sock(sk);
|
||||
mutex_unlock(&tls_ctx->tx_lock);
|
||||
return copied ? copied : ret;
|
||||
}
|
||||
|
||||
@@ -1119,13 +1114,6 @@ static int tls_sw_do_sendpage(struct sock *sk, struct page *page,
|
||||
eor = !(flags & (MSG_MORE | MSG_SENDPAGE_NOTLAST));
|
||||
sk_clear_bit(SOCKWQ_ASYNC_NOSPACE, sk);
|
||||
|
||||
/* Wait till there is any pending write on socket */
|
||||
if (unlikely(sk->sk_write_pending)) {
|
||||
ret = wait_on_pending_writer(sk, &timeo);
|
||||
if (unlikely(ret))
|
||||
goto sendpage_end;
|
||||
}
|
||||
|
||||
/* Call the sk_stream functions to manage the sndbuf mem. */
|
||||
while (size > 0) {
|
||||
size_t copy, required_size;
|
||||
@@ -1224,15 +1212,18 @@ sendpage_end:
|
||||
int tls_sw_sendpage(struct sock *sk, struct page *page,
|
||||
int offset, size_t size, int flags)
|
||||
{
|
||||
struct tls_context *tls_ctx = tls_get_ctx(sk);
|
||||
int ret;
|
||||
|
||||
if (flags & ~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL |
|
||||
MSG_SENDPAGE_NOTLAST | MSG_SENDPAGE_NOPOLICY))
|
||||
return -ENOTSUPP;
|
||||
|
||||
mutex_lock(&tls_ctx->tx_lock);
|
||||
lock_sock(sk);
|
||||
ret = tls_sw_do_sendpage(sk, page, offset, size, flags);
|
||||
release_sock(sk);
|
||||
mutex_unlock(&tls_ctx->tx_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2175,9 +2166,11 @@ static void tx_work_handler(struct work_struct *work)
|
||||
|
||||
if (!test_and_clear_bit(BIT_TX_SCHEDULED, &ctx->tx_bitmask))
|
||||
return;
|
||||
mutex_lock(&tls_ctx->tx_lock);
|
||||
lock_sock(sk);
|
||||
tls_tx_records(sk, -1);
|
||||
release_sock(sk);
|
||||
mutex_unlock(&tls_ctx->tx_lock);
|
||||
}
|
||||
|
||||
void tls_sw_write_space(struct sock *sk, struct tls_context *ctx)
|
||||
@@ -2185,12 +2178,9 @@ void tls_sw_write_space(struct sock *sk, struct tls_context *ctx)
|
||||
struct tls_sw_context_tx *tx_ctx = tls_sw_ctx_tx(ctx);
|
||||
|
||||
/* Schedule the transmission if tx list is ready */
|
||||
if (is_tx_ready(tx_ctx) && !sk->sk_write_pending) {
|
||||
/* Schedule the transmission */
|
||||
if (!test_and_set_bit(BIT_TX_SCHEDULED,
|
||||
&tx_ctx->tx_bitmask))
|
||||
schedule_delayed_work(&tx_ctx->tx_work.work, 0);
|
||||
}
|
||||
if (is_tx_ready(tx_ctx) &&
|
||||
!test_and_set_bit(BIT_TX_SCHEDULED, &tx_ctx->tx_bitmask))
|
||||
schedule_delayed_work(&tx_ctx->tx_work.work, 0);
|
||||
}
|
||||
|
||||
void tls_sw_strparser_arm(struct sock *sk, struct tls_context *tls_ctx)
|
||||
|
Reference in New Issue
Block a user