• Jonas Eymann's avatar
    crypto: talitos - fix crash in talitos_cra_init() · 89d124cb
    Jonas Eymann authored
    Conversion of talitos driver to the new AEAD interface
    hasn't been properly tested.
    
    AEAD algorithms crash in talitos_cra_init as follows:
    
    [...]
    [    1.141095] talitos ffe30000.crypto: hwrng
    [    1.145381] Unable to handle kernel paging request for data at address 0x00000058
    [    1.152913] Faulting instruction address: 0xc02accc0
    [    1.157910] Oops: Kernel access of bad area, sig: 11 [#1]
    [    1.163315] SMP NR_CPUS=2 P1020 RDB
    [    1.166810] Modules linked in:
    [    1.169875] CPU: 0 PID: 1007 Comm: cryptomgr_test Not tainted 4.4.6 #1
    [    1.176415] task: db5ec200 ti: db4d6000 task.ti: db4d6000
    [    1.181821] NIP: c02accc0 LR: c02acd18 CTR: c02acd04
    [    1.186793] REGS: db4d7d30 TRAP: 0300   Not tainted  (4.4.6)
    [    1.192457] MSR: 00029000 <CE,EE,ME>  CR: 95009359  XER: e0000000
    [    1.198585] DEAR: 00000058 ESR: 00000000
    GPR00: c017bdc0 db4d7de0 db5ec200 df424b48 00000000 00000000 df424bfc db75a600
    GPR08: df424b48 00000000 db75a628 db4d6000 00000149 00000000 c0044cac db5acda0
    GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000400 df424940
    GPR24: df424900 00003083 00000400 c0180000 db75a640 c03e9f84 df424b40 df424b48
    [    1.230978] NIP [c02accc0] talitos_cra_init+0x28/0x6c
    [    1.236039] LR [c02acd18] talitos_cra_init_aead+0x14/0x28
    [    1.241443] Call Trace:
    [    1.243894] [db4d7de0] [c03e9f84] 0xc03e9f84 (unreliable)
    [    1.249322] [db4d7df0] [c017bdc0] crypto_create_tfm+0x5c/0xf0
    [    1.255083] [db4d7e10] [c017beec] crypto_alloc_tfm+0x98/0xf8
    [    1.260769] [db4d7e40] [c0186a20] alg_test_aead+0x28/0xc8
    [    1.266181] [db4d7e60] [c0186718] alg_test+0x260/0x2e0
    [    1.271333] [db4d7ee0] [c0183860] cryptomgr_test+0x30/0x54
    [    1.276843] [db4d7ef0] [c0044d80] kthread+0xd4/0xd8
    [    1.281741] [db4d7f40] [c000e4a4] ret_from_kernel_thread+0x5c/0x64
    [    1.287930] Instruction dump:
    [    1.290902] 38600000 4e800020 81230028 7c681b78 81490010 38e9ffc0 3929ffe8 554a073e
    [    1.298691] 2b8a000a 7d474f9e 812a0008 91230030 <80e90058> 39270060 7c0004ac 7cc04828
    
    Cc: <stable@vger.kernel.org> # 4.3+
    Fixes: aeb4c132 ("crypto: talitos - Convert to new AEAD interface")
    Signed-off-by: default avatarJonas Eymann <J.Eymann@gmx.net>
    
    Fix typo - replaced parameter of __crypto_ahash_alg(): s/tfm/alg
    Remove checkpatch warnings.
    Add commit message.
    Signed-off-by: default avatarHoria Geant? <horia.geanta@nxp.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    89d124cb
talitos.c 87.4 KB