encrypt_done called from interrupt context on rk3288 crypto driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings

It seems to me that rk3288 crypto driver calls encrypt_done from
interrupt context which causes runtime tests to fail.

This regression is probably introduced with patch:
crypto: xts - Convert to skcipher by Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/crypto/xts.c?h=v4.12-rc2&id=f1c131b45410a202eb45cc55980a7a9e4e4b4f40

[   18.912744] random: crng init done
[   26.085491] ------------[ cut here ]------------
[   26.087764] WARNING: CPU: 0 PID: 176 at crypto/skcipher.c:431
skcipher_walk_first+0x5c/0x14c
[   26.090045] Modules linked in:
[   26.092284] CPU: 0 PID: 176 Comm: cryptomgr_test Not tainted 4.12.0-rc2 #2
[   26.094546] Hardware name: Rockchip (Device Tree)
[   26.096799] [<8022f9d4>] (unwind_backtrace) from [<8022aeec>]
(show_stack+0x20/0x24)
[   26.099069] [<8022aeec>] (show_stack) from [<8060fc14>]
(dump_stack+0x88/0xa4)
[   26.101339] [<8060fc14>] (dump_stack) from [<80244f2c>] (__warn+0xf0/0x110)
[   26.103598] [<80244f2c>] (__warn) from [<80244ff0>]
(warn_slowpath_null+0x30/0x38)
[   26.105819] [<80244ff0>] (warn_slowpath_null) from [<805c3264>]
(skcipher_walk_first+0x5c/0x14c)
[   26.108054] [<805c3264>] (skcipher_walk_first) from [<805c341c>]
(skcipher_walk_skcipher+0xc8/0xcc)
[   26.110310] [<805c341c>] (skcipher_walk_skcipher) from [<805c365c>]
(skcipher_walk_virt+0x2c/0x48)
[   26.112593] [<805c365c>] (skcipher_walk_virt) from [<805cece4>]
(post_crypt+0x44/0x1cc)
[   26.114898] [<805cece4>] (post_crypt) from [<805cf33c>]
(encrypt_done+0x5c/0x7c)
[   26.117204] [<805cf33c>] (encrypt_done) from [<80874d40>]
(rk_crypto_complete+0x28/0x2c)
[   26.119544] [<80874d40>] (rk_crypto_complete) from [<80875044>]
(rk_ablk_rx+0x80/0x128)
[   26.121899] [<80875044>] (rk_ablk_rx) from [<80874358>]
(rk_crypto_irq_handle+0x68/0x94)
[   26.124294] [<80874358>] (rk_crypto_irq_handle) from [<8029838c>]
(__handle_irq_event_percpu+0x54/0x218)
[   26.126714] [<8029838c>] (__handle_irq_event_percpu) from
[<80298588>] (handle_irq_event_percpu+0x38/0x8c)
[   26.129152] [<80298588>] (handle_irq_event_percpu) from
[<80298630>] (handle_irq_event+0x54/0x78)
[   26.131601] [<80298630>] (handle_irq_event) from [<8029c3a0>]
(handle_fasteoi_irq+0xbc/0x140)
[   26.134096] [<8029c3a0>] (handle_fasteoi_irq) from [<80297afc>]
(generic_handle_irq+0x28/0x38)
[   26.136575] [<80297afc>] (generic_handle_irq) from [<80297bbc>]
(__handle_domain_irq+0xb0/0xc4)
[   26.139029] [<80297bbc>] (__handle_domain_irq) from [<80201584>]
(gic_handle_irq+0x58/0x84)
[   26.141497] [<80201584>] (gic_handle_irq) from [<80a73e78>]
(__irq_svc+0x58/0x74)
[   26.143955] Exception stack(0x821bdaa0 to 0x821bdae8)
[   26.146386] daa0: ed13ab80 00000000 6cafb000 000044fb ed13ab80
82106400 810c12c0 8204de40
[   26.148869] dac0: edbbc2c0 6cafb000 80a6d804 821bdb34 821bdb38
821bdaf0 80a6d804 8026c3e8
[   26.151359] dae0: 60080013 ffffffff
[   26.153842] [<80a73e78>] (__irq_svc) from [<8026c3e8>]
(finish_task_switch+0xf4/0x2b4)
^[[?1;2c[   26.156355] [<8026c3e8>] (finish_task_switch) from
[<80a6d804>] (__schedule+0x5f4/0x974)
[   26.158899] [<80a6d804>] (__schedule) from [<80a6dc64>]
(preempt_schedule_common+0x20/0x30)
[   26.161452] [<80a6dc64>] (preempt_schedule_common) from
[<80a6dcb4>] (_cond_resched+0x40/0x48)
[   26.164031] [<80a6dcb4>] (_cond_resched) from [<80a6e8bc>]
(wait_for_common+0x38/0x1a8)
[   26.166656] [<80a6e8bc>] (wait_for_common) from [<80a6ea4c>]
(wait_for_completion+0x20/0x24)
[   26.169243] [<80a6ea4c>] (wait_for_completion) from [<805c6fa0>]
(__test_skcipher+0x314/0x8a8)
[   26.171784] [<805c6fa0>] (__test_skcipher) from [<805c99a0>]
(test_skcipher+0x38/0xc4)
[   26.174299] [<805c99a0>] (test_skcipher) from [<805c9ac0>]
(alg_test_skcipher+0x94/0xb0)
^[[?1;2c^[[?1;2c[   26.176809] [<805c9ac0>] (alg_test_skcipher) from
[<805ca740>] (alg_test+0x240/0x2e0)^[[?1;2c
[   26.179325] [<805ca740>] (alg_test) from [<805c6458>]
(cryptomgr_test+0x34/0x54)
[   26.181841] [<805c6458>] (cryptomgr_test) from [<802641c8>]
(kthread+0x154/0x16c)
[   26.184359] [<802641c8>] (kthread) from [<80226e08>]
(ret_from_fork+0x14/0x2c)
[   26.186866] ---[ end trace 3311d538cc9cc0a4 ]---
[   26.189429] alg: skcipher: encryption failed on test 1 for
xts(ecb-aes-rk): ret=35
[   26.192050] device-mapper: table: 253:0: crypt: Error allocating crypto tfm
[   26.194682] device-mapper: ioctl: error adding target to table

Best Regards
-Emil



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux