Message ID | 20180222070616.A15E36CBD4@po15720vm.idsi0.si.c-s.fr (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Herbert Xu |
Headers | show |
On 2/22/2018 9:08 AM, Christophe Leroy wrote: > Upstream 87a81dce53b1ea61acaeefa5191a0376a2d1d721 > > Performing the hash of an empty file leads to a kernel Oops > > [ 44.504600] Unable to handle kernel paging request for data at address 0x0000000c > [ 44.512819] Faulting instruction address: 0xc02d2be8 > [ 44.524088] Oops: Kernel access of bad area, sig: 11 [#1] > [ 44.529171] BE PREEMPT CMPC885 > [ 44.532232] CPU: 0 PID: 491 Comm: md5sum Not tainted 4.15.0-rc8-00211-g3a968610b6ea #81 > [ 44.540814] NIP: c02d2be8 LR: c02d2984 CTR: 00000000 > [ 44.545812] REGS: c6813c90 TRAP: 0300 Not tainted (4.15.0-rc8-00211-g3a968610b6ea) > [ 44.554223] MSR: 00009032 <EE,ME,IR,DR,RI> CR: 48222822 XER: 20000000 > [ 44.560855] DAR: 0000000c DSISR: c0000000 > [ 44.560855] GPR00: c02d28fc c6813d40 c6828000 c646fa40 00000001 00000001 00000001 00000000 > [ 44.560855] GPR08: 0000004c 00000000 c000bfcc 00000000 28222822 100280d4 00000000 10020008 > [ 44.560855] GPR16: 00000000 00000020 00000000 00000000 10024008 00000000 c646f9f0 c6179a10 > [ 44.560855] GPR24: 00000000 00000001 c62f0018 c6179a10 00000000 c6367a30 c62f0000 c646f9c0 > [ 44.598542] NIP [c02d2be8] ahash_process_req+0x448/0x700 > [ 44.603751] LR [c02d2984] ahash_process_req+0x1e4/0x700 > [ 44.608868] Call Trace: > [ 44.611329] [c6813d40] [c02d28fc] ahash_process_req+0x15c/0x700 (unreliable) > [ 44.618302] [c6813d90] [c02060c4] hash_recvmsg+0x11c/0x210 > [ 44.623716] [c6813db0] [c0331354] ___sys_recvmsg+0x98/0x138 > [ 44.629226] [c6813eb0] [c03332c0] __sys_recvmsg+0x40/0x84 > [ 44.634562] [c6813f10] [c03336c0] SyS_socketcall+0xb8/0x1d4 > [ 44.640073] [c6813f40] [c000d1ac] ret_from_syscall+0x0/0x38 > [ 44.645530] Instruction dump: > [ 44.648465] 38c00001 7f63db78 4e800421 7c791b78 54690ffe 0f090000 80ff0190 2f870000 > [ 44.656122] 40befe50 2f990001 409e0210 813f01bc <8129000c> b39e003a 7d29c214 913e003c > > This patch fixes that Oops by checking if src is NULL. > > Fixes: 6a1e8d14156d4 ("crypto: talitos - making mapping helpers more generic") > Cc: <stable@vger.kernel.org> > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Isn't this needed also in 4.15.y? Thanks, Horia
Le 22/02/2018 à 09:30, Horia Geantă a écrit : > On 2/22/2018 9:08 AM, Christophe Leroy wrote: >> Upstream 87a81dce53b1ea61acaeefa5191a0376a2d1d721 >> >> Performing the hash of an empty file leads to a kernel Oops >> >> [ 44.504600] Unable to handle kernel paging request for data at address 0x0000000c >> [ 44.512819] Faulting instruction address: 0xc02d2be8 >> [ 44.524088] Oops: Kernel access of bad area, sig: 11 [#1] >> [ 44.529171] BE PREEMPT CMPC885 >> [ 44.532232] CPU: 0 PID: 491 Comm: md5sum Not tainted 4.15.0-rc8-00211-g3a968610b6ea #81 >> [ 44.540814] NIP: c02d2be8 LR: c02d2984 CTR: 00000000 >> [ 44.545812] REGS: c6813c90 TRAP: 0300 Not tainted (4.15.0-rc8-00211-g3a968610b6ea) >> [ 44.554223] MSR: 00009032 <EE,ME,IR,DR,RI> CR: 48222822 XER: 20000000 >> [ 44.560855] DAR: 0000000c DSISR: c0000000 >> [ 44.560855] GPR00: c02d28fc c6813d40 c6828000 c646fa40 00000001 00000001 00000001 00000000 >> [ 44.560855] GPR08: 0000004c 00000000 c000bfcc 00000000 28222822 100280d4 00000000 10020008 >> [ 44.560855] GPR16: 00000000 00000020 00000000 00000000 10024008 00000000 c646f9f0 c6179a10 >> [ 44.560855] GPR24: 00000000 00000001 c62f0018 c6179a10 00000000 c6367a30 c62f0000 c646f9c0 >> [ 44.598542] NIP [c02d2be8] ahash_process_req+0x448/0x700 >> [ 44.603751] LR [c02d2984] ahash_process_req+0x1e4/0x700 >> [ 44.608868] Call Trace: >> [ 44.611329] [c6813d40] [c02d28fc] ahash_process_req+0x15c/0x700 (unreliable) >> [ 44.618302] [c6813d90] [c02060c4] hash_recvmsg+0x11c/0x210 >> [ 44.623716] [c6813db0] [c0331354] ___sys_recvmsg+0x98/0x138 >> [ 44.629226] [c6813eb0] [c03332c0] __sys_recvmsg+0x40/0x84 >> [ 44.634562] [c6813f10] [c03336c0] SyS_socketcall+0xb8/0x1d4 >> [ 44.640073] [c6813f40] [c000d1ac] ret_from_syscall+0x0/0x38 >> [ 44.645530] Instruction dump: >> [ 44.648465] 38c00001 7f63db78 4e800421 7c791b78 54690ffe 0f090000 80ff0190 2f870000 >> [ 44.656122] 40befe50 2f990001 409e0210 813f01bc <8129000c> b39e003a 7d29c214 913e003c >> >> This patch fixes that Oops by checking if src is NULL. >> >> Fixes: 6a1e8d14156d4 ("crypto: talitos - making mapping helpers more generic") >> Cc: <stable@vger.kernel.org> >> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > > Isn't this needed also in 4.15.y? It is already in 4.15, see https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/drivers/crypto/talitos.c?h=v4.15.4&id=e76a4b126d1e7fbd0124cb885331a45e9a24f32b Christophe > > Thanks, > Horia >
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index dff88838dce7..42913116620a 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c @@ -1124,6 +1124,11 @@ int talitos_sg_map(struct device *dev, struct scatterlist *src, struct talitos_private *priv = dev_get_drvdata(dev); bool is_sec1 = has_ftr_sec1(priv); + if (!src) { + *ptr = zero_entry; + return 1; + } + to_talitos_ptr_len(ptr, len, is_sec1); to_talitos_ptr_ext_set(ptr, 0, is_sec1);
Upstream 87a81dce53b1ea61acaeefa5191a0376a2d1d721 Performing the hash of an empty file leads to a kernel Oops [ 44.504600] Unable to handle kernel paging request for data at address 0x0000000c [ 44.512819] Faulting instruction address: 0xc02d2be8 [ 44.524088] Oops: Kernel access of bad area, sig: 11 [#1] [ 44.529171] BE PREEMPT CMPC885 [ 44.532232] CPU: 0 PID: 491 Comm: md5sum Not tainted 4.15.0-rc8-00211-g3a968610b6ea #81 [ 44.540814] NIP: c02d2be8 LR: c02d2984 CTR: 00000000 [ 44.545812] REGS: c6813c90 TRAP: 0300 Not tainted (4.15.0-rc8-00211-g3a968610b6ea) [ 44.554223] MSR: 00009032 <EE,ME,IR,DR,RI> CR: 48222822 XER: 20000000 [ 44.560855] DAR: 0000000c DSISR: c0000000 [ 44.560855] GPR00: c02d28fc c6813d40 c6828000 c646fa40 00000001 00000001 00000001 00000000 [ 44.560855] GPR08: 0000004c 00000000 c000bfcc 00000000 28222822 100280d4 00000000 10020008 [ 44.560855] GPR16: 00000000 00000020 00000000 00000000 10024008 00000000 c646f9f0 c6179a10 [ 44.560855] GPR24: 00000000 00000001 c62f0018 c6179a10 00000000 c6367a30 c62f0000 c646f9c0 [ 44.598542] NIP [c02d2be8] ahash_process_req+0x448/0x700 [ 44.603751] LR [c02d2984] ahash_process_req+0x1e4/0x700 [ 44.608868] Call Trace: [ 44.611329] [c6813d40] [c02d28fc] ahash_process_req+0x15c/0x700 (unreliable) [ 44.618302] [c6813d90] [c02060c4] hash_recvmsg+0x11c/0x210 [ 44.623716] [c6813db0] [c0331354] ___sys_recvmsg+0x98/0x138 [ 44.629226] [c6813eb0] [c03332c0] __sys_recvmsg+0x40/0x84 [ 44.634562] [c6813f10] [c03336c0] SyS_socketcall+0xb8/0x1d4 [ 44.640073] [c6813f40] [c000d1ac] ret_from_syscall+0x0/0x38 [ 44.645530] Instruction dump: [ 44.648465] 38c00001 7f63db78 4e800421 7c791b78 54690ffe 0f090000 80ff0190 2f870000 [ 44.656122] 40befe50 2f990001 409e0210 813f01bc <8129000c> b39e003a 7d29c214 913e003c This patch fixes that Oops by checking if src is NULL. Fixes: 6a1e8d14156d4 ("crypto: talitos - making mapping helpers more generic") Cc: <stable@vger.kernel.org> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> --- drivers/crypto/talitos.c | 5 +++++ 1 file changed, 5 insertions(+)