Re: [PATCH v4 00/20] Support more Amlogic SoC families in crypto driver

neil.armstrong
2024-02-29T15:14:14Z

On 29/02/2024 14:05, Alexey Romanov wrote:
> Hello!
>
> On Wed, Feb 28, 2024 at 09:19:32PM +0100, Corentin Labbe wrote:
>> Le Wed, Feb 28, 2024 at 01:37:02PM +0000, Alexey Romanov a 'ecrit :
>>> Hello,
>>>
>>> On Mon, Feb 19, 2024 at 07:57:27AM +0100, Corentin Labbe wrote:
>>>> Le Thu, Feb 15, 2024 at 10:47:24AM +0000, Alexey Romanov a 'ecrit :
>>>>> On Tue, Feb 13, 2024 at 08:21:12AM +0100, Corentin Labbe wrote:
>>>>>> Le Mon, Feb 12, 2024 at 04:50:48PM +0300, Alexey Romanov a 'ecrit :
>>>>>>> Hello!
>>>>>>>
>>>>>>> This patchset expand the funcionality of the Amlogic
>>>>>>> crypto driver by adding support for more SoC families:
>>>>>>> AXG, G12A, G12B, SM1, A1, S4.
>>>>>>>
>>>>>>> Also specify and enable crypto node in device tree
>>>>>>> for reference Amlogic devices.
>>>>>>>
>>>>>>> Tested on AXG, G12A/B, SM1, A1 and S4 devices via
>>>>>>> custom tests [1] and tcrypt module.
>>>>>>>
>>>>>>> ---
>>>>>>>
>>>>>>
>>>>>> added patchs up to "drivers: crypto: meson: process more than MAXDESCS descriptors"
>>>>>
>>>>> Including this patch or not?
>>>>
>>>> The crash start with "drivers: crypto: meson: move algs definition and cipher API to cipher.c"
>>>
>>> Unfortunately I was unable to reproduce this. I use Khadas Vim1 board
>>> and my custom tests (https://gist.github.com/mRrvz/3fb8943a7487ab7b943ec140706995e7).
>>> Tried both build as module and built-in.
>>>
>>> Can you, please, give more information? Maybe your test cases?
>>
>> My test case is simple, simply load the driver.
>>
>> The problem is that you moved the algs[i].mc = mc after the register of algs (in drivers: crypto: meson: move algs definition and cipher API to cipher.c)
>> Test could happen as soon the register is done and so mc is deferenced.
>
> Yeah, you are right. Will fix it. Thank you.
>
>>
>> Since you didnt hit the case, I suspect you didnt test the driver as module.
>
> No, I test the driver as module.
> I think the problem is that on my system no one uses this crypto backend
> outside of my tests module, unlike your system.

I reproduced the issue, testing each commit with enabled runtime cryto tests:

I get the following when applying "drivers: crypto: meson: introduce hasher":
[ 4.514031] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[ 4.517193] Mem abort info:
[ 4.519934] ESR = 0x0000000086000004
[ 4.523641] EC = 0x21: IABT (current EL), IL = 32 bits
[ 4.528903] SET = 0, FnV = 0
[ 4.531920] EA = 0, S1PTW = 0
[ 4.535025] FSC = 0x04: level 0 translation fault
[ 4.539856] [0000000000000000] user address but active_mm is swapper
[ 4.546155] Internal error: Oops: 0000000086000004 [#1] PREEMPT SMP
[ 4.552359] Modules linked in:
[ 4.555376] CPU: 2 PID: 77 Comm: cryptomgr_test Not tainted 6.8.0-rc6-next-20240229-g2296d426c21a #105
[ 4.564608] Hardware name: Libre Computer AML-S905X-CC (DT)
[ 4.570125] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 4.577025] pc : 0x0
[ 4.579178] lr : ahash_def_finup+0x12c/0x14c
[ 4.583406] sp : ffff8000825037a0
[ 4.586683] x29: ffff8000825037a0 x28: 0000000000000001 x27: ffff000007ab8060
[ 4.593758] x26: ffff800082503958 x25: 0000000000000400 x24: ffff800082503918
[ 4.600830] x23: 0000000000000820 x22: ffff0000048ec390 x21: ffff000003d9e200
[ 4.607903] x20: ffff0000048ee300 x19: ffff000003d9e400 x18: 0000000000000020
[ 4.614976] x17: 00000000b5f74d5b x16: ffff800081bbbc60 x15: ffffffffffffffff
[ 4.622048] x14: ffff0000049fb380 x13: 0000000000000000 x12: 0000000000000000
[ 4.629120] x11: ffff800082503778 x10: ffff800082503780 x9 : 0000000000001388
[ 4.636193] x8 : ffff800082503988 x7 : fefefefefefefefe x6 : 0101010101010101
[ 4.643265] x5 : ffff0000049fb300 x4 : ffff00007f2d5830 x3 : 0000000000000000
[ 4.650338] x2 : 0000000000000000 x1 : ffff0000048ee300 x0 : ffff000003d9e200
[ 4.657411] Call trace:
[ 4.659823] 0x0
[ 4.661633] crypto_ahash_finup+0x38/0x44
[ 4.665602] test_ahash_vec_cfg+0x680/0x7dc
[ 4.669742] test_hash_vec+0xac/0x1ec
[ 4.673364] __alg_test_hash+0x158/0x308
[ 4.677246] alg_test_hash+0xfc/0x1a0
[ 4.680868] alg_test.part.0+0x51c/0x524
[ 4.684750] alg_test+0x20/0x64
[ 4.687854] cryptomgr_test+0x24/0x44
[ 4.691477] kthread+0x118/0x11c
[ 4.694668] ret_from_fork+0x10/0x20
[ 4.698214] Code: ???????? ???????? ???????? ???????? (????????)
[ 4.704247] ---[ end trace 0000000000000000 ]---

Please make sure every single commit builds without error and doesn't regress at runtime on existing platforms.

Thanks,
Neil

>
>>
>> Regards
>