diff options
-rw-r--r-- | arch/arm64/crypto/aes-glue.c | 2 | ||||
-rw-r--r-- | crypto/morus640.c | 3 | ||||
-rw-r--r-- | crypto/sha3_generic.c | 2 | ||||
-rw-r--r-- | drivers/char/hw_random/core.c | 11 | ||||
-rw-r--r-- | drivers/crypto/chelsio/chtls/chtls_io.c | 5 |
5 files changed, 15 insertions, 8 deletions
diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c index 253188fb8cb0..e3e50950a863 100644 --- a/arch/arm64/crypto/aes-glue.c +++ b/arch/arm64/crypto/aes-glue.c | |||
@@ -223,8 +223,8 @@ static int ctr_encrypt(struct skcipher_request *req) | |||
223 | kernel_neon_begin(); | 223 | kernel_neon_begin(); |
224 | aes_ctr_encrypt(walk.dst.virt.addr, walk.src.virt.addr, | 224 | aes_ctr_encrypt(walk.dst.virt.addr, walk.src.virt.addr, |
225 | (u8 *)ctx->key_enc, rounds, blocks, walk.iv); | 225 | (u8 *)ctx->key_enc, rounds, blocks, walk.iv); |
226 | err = skcipher_walk_done(&walk, walk.nbytes % AES_BLOCK_SIZE); | ||
227 | kernel_neon_end(); | 226 | kernel_neon_end(); |
227 | err = skcipher_walk_done(&walk, walk.nbytes % AES_BLOCK_SIZE); | ||
228 | } | 228 | } |
229 | if (walk.nbytes) { | 229 | if (walk.nbytes) { |
230 | u8 __aligned(8) tail[AES_BLOCK_SIZE]; | 230 | u8 __aligned(8) tail[AES_BLOCK_SIZE]; |
diff --git a/crypto/morus640.c b/crypto/morus640.c index 9fbcde307daf..5eede3749e64 100644 --- a/crypto/morus640.c +++ b/crypto/morus640.c | |||
@@ -274,8 +274,9 @@ static void crypto_morus640_decrypt_chunk(struct morus640_state *state, u8 *dst, | |||
274 | union morus640_block_in tail; | 274 | union morus640_block_in tail; |
275 | 275 | ||
276 | memcpy(tail.bytes, src, size); | 276 | memcpy(tail.bytes, src, size); |
277 | memset(tail.bytes + size, 0, MORUS640_BLOCK_SIZE - size); | ||
277 | 278 | ||
278 | crypto_morus640_load_a(&m, src); | 279 | crypto_morus640_load_a(&m, tail.bytes); |
279 | crypto_morus640_core(state, &m); | 280 | crypto_morus640_core(state, &m); |
280 | crypto_morus640_store_a(tail.bytes, &m); | 281 | crypto_morus640_store_a(tail.bytes, &m); |
281 | memset(tail.bytes + size, 0, MORUS640_BLOCK_SIZE - size); | 282 | memset(tail.bytes + size, 0, MORUS640_BLOCK_SIZE - size); |
diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c index 264ec12c0b9c..7f6735d9003f 100644 --- a/crypto/sha3_generic.c +++ b/crypto/sha3_generic.c | |||
@@ -152,7 +152,7 @@ static SHA3_INLINE void keccakf_round(u64 st[25]) | |||
152 | st[24] ^= bc[ 4]; | 152 | st[24] ^= bc[ 4]; |
153 | } | 153 | } |
154 | 154 | ||
155 | static void __optimize("O3") keccakf(u64 st[25]) | 155 | static void keccakf(u64 st[25]) |
156 | { | 156 | { |
157 | int round; | 157 | int round; |
158 | 158 | ||
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c index 91bb98c42a1c..aaf9e5afaad4 100644 --- a/drivers/char/hw_random/core.c +++ b/drivers/char/hw_random/core.c | |||
@@ -516,11 +516,18 @@ EXPORT_SYMBOL_GPL(hwrng_register); | |||
516 | 516 | ||
517 | void hwrng_unregister(struct hwrng *rng) | 517 | void hwrng_unregister(struct hwrng *rng) |
518 | { | 518 | { |
519 | int err; | ||
520 | |||
519 | mutex_lock(&rng_mutex); | 521 | mutex_lock(&rng_mutex); |
520 | 522 | ||
521 | list_del(&rng->list); | 523 | list_del(&rng->list); |
522 | if (current_rng == rng) | 524 | if (current_rng == rng) { |
523 | enable_best_rng(); | 525 | err = enable_best_rng(); |
526 | if (err) { | ||
527 | drop_current_rng(); | ||
528 | cur_rng_set_by_user = 0; | ||
529 | } | ||
530 | } | ||
524 | 531 | ||
525 | if (list_empty(&rng_list)) { | 532 | if (list_empty(&rng_list)) { |
526 | mutex_unlock(&rng_mutex); | 533 | mutex_unlock(&rng_mutex); |
diff --git a/drivers/crypto/chelsio/chtls/chtls_io.c b/drivers/crypto/chelsio/chtls/chtls_io.c index 00c7aab8e7d0..afebbd87c4aa 100644 --- a/drivers/crypto/chelsio/chtls/chtls_io.c +++ b/drivers/crypto/chelsio/chtls/chtls_io.c | |||
@@ -1548,15 +1548,14 @@ skip_copy: | |||
1548 | tp->urg_data = 0; | 1548 | tp->urg_data = 0; |
1549 | 1549 | ||
1550 | if ((avail + offset) >= skb->len) { | 1550 | if ((avail + offset) >= skb->len) { |
1551 | if (likely(skb)) | ||
1552 | chtls_free_skb(sk, skb); | ||
1553 | buffers_freed++; | ||
1554 | if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) { | 1551 | if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) { |
1555 | tp->copied_seq += skb->len; | 1552 | tp->copied_seq += skb->len; |
1556 | hws->rcvpld = skb->hdr_len; | 1553 | hws->rcvpld = skb->hdr_len; |
1557 | } else { | 1554 | } else { |
1558 | tp->copied_seq += hws->rcvpld; | 1555 | tp->copied_seq += hws->rcvpld; |
1559 | } | 1556 | } |
1557 | chtls_free_skb(sk, skb); | ||
1558 | buffers_freed++; | ||
1560 | hws->copied_seq = 0; | 1559 | hws->copied_seq = 0; |
1561 | if (copied >= target && | 1560 | if (copied >= target && |
1562 | !skb_peek(&sk->sk_receive_queue)) | 1561 | !skb_peek(&sk->sk_receive_queue)) |