From: Herbert Xu Date: Tue, 15 Sep 2020 03:30:24 +0000 (+1000) Subject: crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally X-Git-Tag: v5.15~2545^2~85 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=255f6c2e74b136662a191652d688bd7566c94bf6;p=platform%2Fkernel%2Flinux-starfive.git crypto: lib/chacha20poly1305 - Set SG_MITER_ATOMIC unconditionally There is no reason for the chacha20poly1305 SG miter code to use kmap instead of kmap_atomic as the critical section doesn't sleep anyway. So we can simply get rid of the preemptible check and set SG_MITER_ATOMIC unconditionally. Even if we need to reenable preemption to lower latency we should be doing that by interrupting the SG miter walk rather than using kmap. Reported-by: Linus Torvalds Signed-off-by: Herbert Xu --- diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c index 431e042..5850f3b 100644 --- a/lib/crypto/chacha20poly1305.c +++ b/lib/crypto/chacha20poly1305.c @@ -251,9 +251,7 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src, poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf)); } - flags = SG_MITER_TO_SG; - if (!preemptible()) - flags |= SG_MITER_ATOMIC; + flags = SG_MITER_TO_SG | SG_MITER_ATOMIC; sg_miter_start(&miter, src, sg_nents(src), flags);