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

From: Geert Uytterhoeven
Date: Thu Nov 04 2021 - 09:11:50 EST


Hi Herbert,

On Thu, Nov 4, 2021 at 1:16 PM Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Nov 04, 2021 at 08:58:16AM +0100, Geert Uytterhoeven wrote:
> > 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:
> >
> > > > 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.
>
> Can someone please send me the Kconfig used in this case?

My config is nommu_k210_sdcard_defconfig with the changes below:

diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig.orig
b/arch/riscv/configs/nommu_k210_sdcard_defconfig
index 61f887f65419950c..f14ea3803cea5f3d 100644
--- a/arch/riscv/configs/nommu_k210_sdcard_defconfig.orig
+++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
@@ -1,3 +1,5 @@
+CONFIG_WERROR=y
+CONFIG_LOCALVERSION="-k210"
# CONFIG_CPU_ISOLATION is not set
CONFIG_LOG_BUF_SHIFT=13
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12
@@ -21,16 +23,15 @@ CONFIG_EMBEDDED=y
CONFIG_SLOB=y
# CONFIG_MMU is not set
CONFIG_SOC_CANAAN=y
-CONFIG_SOC_CANAAN_K210_DTB_SOURCE="k210_generic"
-CONFIG_MAXPHYSMEM_2GB=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit"
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_CMDLINE="earlycon console=ttySIF0 rootdelay=2 root=/dev/mmcblk0p1 ro"
CONFIG_CMDLINE_FORCE=y
# CONFIG_SECCOMP is not set
# CONFIG_STACKPROTECTOR is not set
-# CONFIG_GCC_PLUGINS is not set
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_EFI_PARTITION is not set
# CONFIG_MQ_IOSCHED_DEADLINE is not set
# CONFIG_MQ_IOSCHED_KYBER is not set
CONFIG_BINFMT_FLAT=y
@@ -39,10 +40,16 @@ CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_FW_LOADER is not set
# CONFIG_ALLOW_DEV_COREDUMP is not set
+CONFIG_MTD=y
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_SPI_NOR=y
# CONFIG_BLK_DEV is not set
-# CONFIG_INPUT is not set
+# CONFIG_INPUT_LEDS is not set
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
# CONFIG_VT is not set
+# CONFIG_UNIX98_PTYS is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_LDISC_AUTOLOAD is not set
# CONFIG_HW_RANDOM is not set
@@ -52,7 +59,6 @@ CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_HELPER_AUTO is not set
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
-# CONFIG_SPI_MEM is not set
CONFIG_SPI_DESIGNWARE=y
CONFIG_SPI_DW_MMIO=y
# CONFIG_GPIO_CDEV_V1 is not set
@@ -61,6 +67,7 @@ CONFIG_GPIO_SIFIVE=y
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_SYSCON=y
# CONFIG_HWMON is not set
+# CONFIG_HID is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
# CONFIG_PWRSEQ_EMMC is not set
@@ -72,8 +79,9 @@ CONFIG_LEDS_GPIO=y
CONFIG_LEDS_USER=y
# CONFIG_VIRTIO_MENU is not set
# CONFIG_VHOST_MENU is not set
-# CONFIG_SURFACE_PLATFORMS is not set
-CONFIG_EXT2_FS=y
+# CONFIG_NVMEM is not set
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4_USE_FOR_EXT2 is not set
# CONFIG_FILE_LOCKING is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
@@ -82,8 +90,8 @@ CONFIG_LSM="[]"
CONFIG_PRINTK_TIME=y
# CONFIG_SYMBOLIC_ERRNAME is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
# CONFIG_FRAME_POINTER is not set
+CONFIG_VMLINUX_MAP=y
# CONFIG_DEBUG_MISC is not set
CONFIG_PANIC_ON_OOPS=y
# CONFIG_SCHED_DEBUG is not set

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