Re: [PATCH] crypto: api - Do not create test larvals if manager is disabled

From: Damien Le Moal
Date: Thu Nov 04 2021 - 04:05:50 EST


On 2021/11/04 16:58, Geert Uytterhoeven wrote:
> Hi Damien,
>
> On Thu, Nov 4, 2021 at 8:29 AM Damien Le Moal <Damien.LeMoal@xxxxxxx> wrote:
>> On 2021/11/03 0:41, Geert Uytterhoeven wrote:
>>> On Tue, 19 Oct 2021, Herbert Xu wrote:
>>>> On Tue, Oct 05, 2021 at 07:33:28PM -0700, Nathan Chancellor wrote:
>>>>> I assume this is the diff you mean? This does not resolve the issue. My
>>>>> apologies if I am slow to respond, I am on vacation until the middle of
>>>>> next week.
>>>>
>>>> Sorry for the delay. The kernel robot figured out the problem
>>>> for me. It's the crypto_alg_tested call that causes api.c to
>>>> depend on algapi.c. This call is only invoked in the case where
>>>> the crypto manager is turned off. We could instead simply make
>>>> test larvals disappear in that case.
>>>>
>>>> ---8<---
>>>> The delayed boot-time testing patch created a dependency loop
>>>> between api.c and algapi.c because it added a crypto_alg_tested
>>>> call to the former when the crypto manager is disabled.
>>>>
>>>> We could instead avoid creating the test larvals if the crypto
>>>> manager is disabled. This avoids the dependency loop as well
>>>> as saving some unnecessary work, albeit in a very unlikely case.
>>>>
>>>> Reported-by: Nathan Chancellor <nathan@xxxxxxxxxx>
>>>> Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
>>>> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>>>> Fixes: adad556efcdd ("crypto: api - Fix built-in testing dependency failures")
>>>> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
>>>
>>> Thanks for your patch, which is now commit cad439fc040efe5f
>>> ("crypto: api - Do not create test larvals if manager is disabled").
>>>
>>> I have bisected a failure to mount the root file system on k210 to this
>>> commit.
>>>
>>> Dmesg before/after:
>>>
>>> mmcblk0: mmc0:0000 SA04G 3.68 GiB
>>> random: fast init done
>>> mmcblk0: p1
>>> -EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled.
>>> -VFS: Mounted root (ext4 filesystem) readonly on device 179:1.
>>> +EXT4-fs (mmcblk0p1): Cannot load crc32c driver.
>>> +VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1): error -80
>>
>> p1 exist as the message 2 lines above shows. And since the mount error is -80
>> (ELIBBAD), it is really all about crypto. Since the default k210 config compile
>> everything in-kernel (no modules), it should work. Was crc32c compiled as a
>> module ? If yes, then the k210 will need to be booted with U-Boot and use a real
>> initrd, which likely will all end-up in a no memory situation. ext4 in itself
>> will consume way too much memory...
>
> Everything is built-in, including crc32c. It worked fine, until the commit
> referenced.

I think I read this backward. I thought one of my k210 patch was wrong... It is
the crypto patch that is at fault here.

Thanks !

>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
>


--
Damien Le Moal
Western Digital Research