diff options
-rw-r--r-- | net/tls/tls_device.c | 4 | ||||
-rw-r--r-- | net/tls/tls_sw.c | 9 |
2 files changed, 6 insertions, 7 deletions
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index f959487c5cd1..5a3715ddc592 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c | |||
@@ -623,9 +623,11 @@ static int tls_device_push_pending_record(struct sock *sk, int flags) | |||
623 | 623 | ||
624 | void tls_device_write_space(struct sock *sk, struct tls_context *ctx) | 624 | void tls_device_write_space(struct sock *sk, struct tls_context *ctx) |
625 | { | 625 | { |
626 | if (!sk->sk_write_pending && tls_is_partially_sent_record(ctx)) { | 626 | if (tls_is_partially_sent_record(ctx)) { |
627 | gfp_t sk_allocation = sk->sk_allocation; | 627 | gfp_t sk_allocation = sk->sk_allocation; |
628 | 628 | ||
629 | WARN_ON_ONCE(sk->sk_write_pending); | ||
630 | |||
629 | sk->sk_allocation = GFP_ATOMIC; | 631 | sk->sk_allocation = GFP_ATOMIC; |
630 | tls_push_partial_record(sk, ctx, | 632 | tls_push_partial_record(sk, ctx, |
631 | MSG_DONTWAIT | MSG_NOSIGNAL | | 633 | MSG_DONTWAIT | MSG_NOSIGNAL | |
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index c2b5e0d2ba1a..e155b792df0b 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c | |||
@@ -2180,12 +2180,9 @@ void tls_sw_write_space(struct sock *sk, struct tls_context *ctx) | |||
2180 | struct tls_sw_context_tx *tx_ctx = tls_sw_ctx_tx(ctx); | 2180 | struct tls_sw_context_tx *tx_ctx = tls_sw_ctx_tx(ctx); |
2181 | 2181 | ||
2182 | /* Schedule the transmission if tx list is ready */ | 2182 | /* Schedule the transmission if tx list is ready */ |
2183 | if (is_tx_ready(tx_ctx) && !sk->sk_write_pending) { | 2183 | if (is_tx_ready(tx_ctx) && |
2184 | /* Schedule the transmission */ | 2184 | !test_and_set_bit(BIT_TX_SCHEDULED, &tx_ctx->tx_bitmask)) |
2185 | if (!test_and_set_bit(BIT_TX_SCHEDULED, | 2185 | schedule_delayed_work(&tx_ctx->tx_work.work, 0); |
2186 | &tx_ctx->tx_bitmask)) | ||
2187 | schedule_delayed_work(&tx_ctx->tx_work.work, 0); | ||
2188 | } | ||
2189 | } | 2186 | } |
2190 | 2187 | ||
2191 | void tls_sw_strparser_arm(struct sock *sk, struct tls_context *tls_ctx) | 2188 | void tls_sw_strparser_arm(struct sock *sk, struct tls_context *tls_ctx) |