”cpio” archive is initramfs and not initrd, isn’t it ?<br><br>вівторок, 23 вересня 2025 р. Christophe Leroy <<a href="mailto:christophe.leroy@csgroup.eu">christophe.leroy@csgroup.eu</a>> пише:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Le 13/09/2025 à 02:37, Askar Safin a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[Vous ne recevez pas souvent de courriers de <a href="mailto:safinaskar@gmail.com" target="_blank">safinaskar@gmail.com</a>. Découvrez pourquoi ceci est important à <a href="https://aka.ms/LearnAboutSenderIdentification" target="_blank">https://aka.ms/LearnAboutSende<wbr>rIdentification</a> ]<br>
<br>
Intro<br>
====<br>
This patchset removes classic initrd (initial RAM disk) support,<br>
which was deprecated in 2020.<br>
Initramfs still stays, and RAM disk itself (brd) still stays, too.<br>
init/do_mounts* and init/*initramfs* are listed in VFS entry in<br>
MAINTAINERS, so I think this patchset should go through VFS tree.<br>
This patchset touchs every subdirectory in arch/, so I tested it<br>
on 8 (!!!) archs in Qemu (see details below).<br>
Warning: this patchset renames CONFIG_BLK_DEV_INITRD (!!!) to CONFIG_INITRAMFS<br>
and CONFIG_RD_* to CONFIG_INITRAMFS_DECOMPRESS_* (for example,<br>
CONFIG_RD_GZIP to CONFIG_INITRAMFS_DECOMPRESS_GZ<wbr>IP).<br>
If you still use initrd, see below for workaround.<br>
</blockquote>
<br>
Apologise if my question looks stupid, but I'm using QEMU for various tests, and the way QEMU is started is something like:<br>
<br>
qemu-system-ppc -kernel ./vmlinux -cpu g4 -M mac99 -initrd ./qemu/rootfs.cpio.gz<br>
<br>
I was therefore expecting (and fearing) it to fail with your series applied, but surprisingly it still works.<br>
<br>
Therefore is it really initrd you are removing or just some corner case ? If it is really initrd, then how does QEMU still work with that -initrd parameter ?<br>
<br>
Thanks<br>
Christophe<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Details<br>
====<br>
I not only removed initrd, I also removed a lot of code, which<br>
became dead, including a lot of code in arch/.<br>
<br>
Still I think the only two architectures I touched in non-trivial<br>
way are sh and 32-bit arm.<br>
<br>
Also I renamed some files, functions and variables (which became misnomers) to proper names,<br>
moved some code around, removed a lot of mentions of initrd<br>
in code and comments. Also I cleaned up some docs.<br>
<br>
For example, I renamed the following global variables:<br>
<br>
__initramfs_start<br>
__initramfs_size<br>
phys_initrd_start<br>
phys_initrd_size<br>
initrd_start<br>
initrd_end<br>
<br>
to:<br>
<br>
__builtin_initramfs_start<br>
__builtin_initramfs_size<br>
phys_external_initramfs_start<br>
phys_external_initramfs_size<br>
virt_external_initramfs_start<br>
virt_external_initramfs_end<br>
<br>
New names precisely capture meaning of these variables.<br>
<br>
Also I renamed CONFIG_BLK_DEV_INITRD (which became total misnomer)<br>
to CONFIG_INITRAMFS. And CONFIG_RD_* to CONFIG_INITRAMFS_DECOMPRESS_*.<br>
This will break all configs out there (update your configs!).<br>
Still I think this is okay,<br>
because config names never were part of stable API.<br>
Still, I don't have strong opinion here, so I can drop these renamings<br>
if needed.<br>
<br>
Other user-visible changes:<br>
<br>
- Removed kernel command line parameters "load_ramdisk" and<br>
"prompt_ramdisk", which did nothing and were deprecated<br>
- Removed kernel command line parameter "ramdisk_start",<br>
which was used for initrd only (not for initramfs)<br>
- Removed kernel command line parameter "noinitrd",<br>
which was inconsistent: it controlled initrd only<br>
(not initramfs), except for EFI boot, where it<br>
controlled both initramfs and initrd. EFI users<br>
still can disable initramfs simply by not passing it<br>
- Removed kernel command line parameter "ramdisk_size",<br>
which used for controlling ramdisk (brd), but only<br>
in non-modular mode. Use brd.rd_size instead, it<br>
always works<br>
- Removed /proc/sys/kernel/real-root-dev . It was used<br>
for initrd only<br>
<br>
This patchset is based on v6.17-rc5.<br>
<br>
Testing<br>
====<br>
I tested my patchset on many architectures in Qemu using my Rust<br>
program, heavily based on mkroot [1].<br>
<br>
I used the following cross-compilers:<br>
<br>
aarch64-linux-musleabi<br>
armv4l-linux-musleabihf<br>
armv5l-linux-musleabihf<br>
armv7l-linux-musleabihf<br>
i486-linux-musl<br>
i686-linux-musl<br>
mips-linux-musl<br>
mips64-linux-musl<br>
mipsel-linux-musl<br>
powerpc-linux-musl<br>
powerpc64-linux-musl<br>
powerpc64le-linux-musl<br>
riscv32-linux-musl<br>
riscv64-linux-musl<br>
s390x-linux-musl<br>
sh4-linux-musl<br>
sh4eb-linux-musl<br>
x86_64-linux-musl<br>
<br>
taken from this directory [2].<br>
<br>
So, as you can see, there are 18 triplets, which correspond to 8 subdirs in arch/.<br>
<br>
And note that this list contains two archs (arm and sh) touched in non-trivial way.<br>
<br>
For every triplet I tested that:<br>
- Initramfs still works (both builtin and external)<br>
- Direct boot from disk still works<br>
<br>
Workaround<br>
====<br>
If "retain_initrd" is passed to kernel, then initramfs/initrd,<br>
passed by bootloader, is retained and becomes available after boot<br>
as read-only magic file /sys/firmware/initrd [3].<br>
<br>
No copies are involved. I. e. /sys/firmware/initrd is simply<br>
a reference to original blob passed by bootloader.<br>
<br>
This works even if initrd/initramfs is not recognized by kernel<br>
in any way, i. e. even if it is not valid cpio archive, nor<br>
a fs image supported by classic initrd.<br>
<br>
This works both with my patchset and without it.<br>
<br>
This means that you can emulate classic initrd so:<br>
link builtin initramfs to kernel. In /init in this initramfs<br>
copy /sys/firmware/initrd to some file in / and loop-mount it.<br>
<br>
This is even better than classic initrd, because:<br>
- You can use fs not supported by classic initrd, for example erofs<br>
- One copy is involved (from /sys/firmware/initrd to some file in /)<br>
as opposed to two when using classic initrd<br>
<br>
Still, I don't recommend using this workaround, because<br>
I want everyone to migrate to proper modern initramfs.<br>
But still you can use this workaround if you want.<br>
<br>
Also: it is not possible to directly loop-mount<br>
/sys/firmware/initrd . Theoretically kernel can be changed<br>
to allow this (and/or to make it writable), but I think nobody needs this.<br>
And I don't want to implement this.<br>
<br>
P. S. When I sent this patchset first time, zoho mail banned me for<br>
too much email. So I resend this using gmail. The only change is<br>
email change, there are no other changes<br>
<br>
[1] <a href="https://github.com/landley/toybox/tree/master/mkroot" target="_blank">https://github.com/landley/toy<wbr>box/tree/master/mkroot</a><br>
[2] <a href="https://landley.net/toybox/downloads/binaries/toolchains/latest" target="_blank">https://landley.net/toybox/dow<wbr>nloads/binaries/toolchains/lat<wbr>est</a><br>
[3] <a href="https://lore.kernel.org/all/20231207235654.16622-1-graf@amazon.com/" target="_blank">https://lore.kernel.org/all/20<wbr>231207235654.16622-1-graf@amaz<wbr>on.com/</a><br>
<br>
Askar Safin (62):<br>
   init: remove deprecated "load_ramdisk" command line parameter, which<br>
     does nothing<br>
   init: remove deprecated "prompt_ramdisk" command line parameter, which<br>
     does nothing<br>
   init: sh, sparc, x86: remove unused constants RAMDISK_PROMPT_FLAG and<br>
     RAMDISK_LOAD_FLAG<br>
   init: x86, arm, sh, sparc: remove variable rd_image_start, which<br>
     controls starting block number of initrd<br>
   init: remove "ramdisk_start" command line parameter, which controls<br>
     starting block number of initrd<br>
   arm: init: remove special logic for setting brd.rd_size<br>
   arm: init: remove ATAG_RAMDISK<br>
   arm: init: remove FLAG_RDLOAD and FLAG_RDPROMPT<br>
   arm: init: document rd_start (in param_struct) as obsolete<br>
   initrd: remove initrd (initial RAM disk) support<br>
   init, efi: remove "noinitrd" command line parameter<br>
   init: remove /proc/sys/kernel/real-root-dev<br>
   ext2: remove ext2_image_size and associated code<br>
   init: m68k, mips, powerpc, s390, sh: remove Root_RAM0<br>
   doc: modernize Documentation/admin-guide/bloc<wbr>kdev/ramdisk.rst<br>
   brd: remove "ramdisk_size" command line parameter<br>
   doc: modernize Documentation/filesystems/ramf<wbr>s-rootfs-initramfs.rst<br>
   doc: modernize<br>
     Documentation/driver-api/earl<wbr>y-userspace/early_userspace_<wbr>support.rst<br>
   init: remove mentions of "ramdisk=" command line parameter<br>
   doc: remove Documentation/power/swsusp-dmc<wbr>rypt.rst<br>
   init: remove all mentions of root=/dev/ram*<br>
   doc: remove obsolete mentions of pivot_root<br>
   init: rename __initramfs_{start,size} to<br>
     __builtin_initramfs_{start,si<wbr>ze}<br>
   init: remove wrong comment<br>
   init: rename phys_initrd_{start,size} to<br>
     phys_external_initramfs_{star<wbr>t,size}<br>
   init: move phys_external_initramfs_{start<wbr>,size} to init/initramfs.c<br>
   init: alpha: remove "extern unsigned long initrd_start, initrd_end"<br>
   init: alpha, arc, arm, arm64, csky, m68k, microblaze, mips, nios2,<br>
     openrisc, parisc, powerpc, s390, sh, sparc, um, x86, xtensa: rename<br>
     initrd_{start,end} to virt_external_initramfs_{start<wbr>,end}<br>
   init: move virt_external_initramfs_{start<wbr>,end} to init/initramfs.c<br>
   doc: remove documentation for block device 4 0<br>
   init: rename initrd_below_start_ok to initramfs_below_start_ok<br>
   init: move initramfs_below_start_ok to init/initramfs.c<br>
   init: remove init/do_mounts_initrd.c<br>
   init: inline create_dev into the only caller<br>
   init: make mount_root_generic static<br>
   init: make mount_root static<br>
   init: remove root_mountflags from init/do_mounts.h<br>
   init: remove most headers from init/do_mounts.h<br>
   init: make console_on_rootfs static<br>
   init: rename free_initrd_mem to free_initramfs_mem<br>
   init: rename reserve_initrd_mem to reserve_initramfs_mem<br>
   init: rename <linux/initrd.h> to <linux/initramfs.h><br>
   setsid: inline ksys_setsid into the only caller<br>
   doc: kernel-parameters: remove [RAM] from reserve_mem=<br>
   doc: kernel-parameters: replace [RAM] with [INITRAMFS]<br>
   init: edit docs for initramfs-related configs<br>
   init: fix typo: virtul => virtual<br>
   init: fix comment<br>
   init: rename ramdisk_execute_command to initramfs_execute_command<br>
   init: rename ramdisk_command_access to initramfs_command_access<br>
   init: rename get_boot_config_from_initrd to<br>
     get_boot_config_from_<wbr>initramfs<br>
   init: rename do_retain_initrd to retain_initramfs<br>
   init: rename kexec_free_initrd to kexec_free_initramfs<br>
   init: arm, x86: deal with some references to initrd<br>
   init: rename CONFIG_BLK_DEV_INITRD to CONFIG_INITRAMFS<br>
   init: rename CONFIG_RD_GZIP to CONFIG_INITRAMFS_DECOMPRESS_GZ<wbr>IP<br>
   init: rename CONFIG_RD_BZIP2 to CONFIG_INITRAMFS_DECOMPRESS_BZ<wbr>IP2<br>
   init: rename CONFIG_RD_LZMA to CONFIG_INITRAMFS_DECOMPRESS_LZ<wbr>MA<br>
   init: rename CONFIG_RD_XZ to CONFIG_INITRAMFS_DECOMPRESS_XZ<br>
   init: rename CONFIG_RD_LZO to CONFIG_INITRAMFS_DECOMPRESS_LZ<wbr>O<br>
   init: rename CONFIG_RD_LZ4 to CONFIG_INITRAMFS_DECOMPRESS_LZ<wbr>4<br>
   init: rename CONFIG_RD_ZSTD to CONFIG_INITRAMFS_DECOMPRESS_ZS<wbr>TD<br>
<br>
  .../admin-guide/blockdev/ramdi<wbr>sk.rst          | 104 +----<br>
  .../admin-guide/device-mapper/<wbr>dm-init.rst     |   4 +-<br>
  Documentation/admin-guide/devi<wbr>ces.txt         |  12 -<br>
  Documentation/admin-guide/inde<wbr>x.rst           |   1 -<br>
  Documentation/admin-guide/init<wbr>rd.rst          | 383 ------------------<br>
  .../admin-guide/kernel-paramet<wbr>ers.rst         |   4 +-<br>
  .../admin-guide/kernel-paramet<wbr>ers.txt         |  38 +-<br>
  Documentation/admin-guide/nfs/<wbr>nfsroot.rst     |   4 +-<br>
  Documentation/admin-guide/sysc<wbr>tl/kernel.rst   |   6 -<br>
  Documentation/arch/arm/ixp4xx.<wbr>rst             |   4 +-<br>
  Documentation/arch/arm/setup.r<wbr>st              |   6 +-<br>
  Documentation/arch/m68k/kernel<wbr>-options.rst    |  29 +-<br>
  Documentation/arch/x86/<a href="http://boot.rs">boot.rs</a><wbr>t               |   4 +-<br>
  .../<a href="http://early_userspace_support.rs">early_userspace_support.rs</a><wbr>t               |  18 +-<br>
  .../filesystems/ramfs-rootfs-i<wbr>nitramfs.rst    |  20 +-<br>
  Documentation/power/index.rst                 |   1 -<br>
  Documentation/power/swsusp-dmc<wbr>rypt.rst        | 140 -------<br>
  Documentation/security/ipe.<wbr>rst                |   2 +-<br>
  .../translations/zh_CN/power/i<wbr>ndex.rst        |   1 -<br>
  arch/alpha/kernel/core_irongat<wbr>e.c             |  12 +-<br>
  arch/alpha/kernel/proto.h                     |   2 +-<br>
  arch/alpha/kernel/setup.c                     |  32 +-<br>
  arch/arc/configs/axs101_defcon<wbr>fig             |   2 +-<br>
  arch/arc/configs/axs103_defcon<wbr>fig             |   2 +-<br>
  arch/arc/configs/axs103_smp_de<wbr>fconfig         |   2 +-<br>
  arch/arc/configs/haps_hs_defco<wbr>nfig            |   2 +-<br>
  arch/arc/configs/haps_hs_smp_d<wbr>efconfig        |   2 +-<br>
  arch/arc/configs/hsdk_defconfi<wbr>g               |   2 +-<br>
  arch/arc/configs/nsim_700_defc<wbr>onfig           |   2 +-<br>
  arch/arc/configs/nsimosci_defc<wbr>onfig           |   2 +-<br>
  arch/arc/configs/nsimosci_hs_d<wbr>efconfig        |   2 +-<br>
  arch/arc/configs/nsimosci_hs_s<wbr>mp_defconfig    |   2 +-<br>
  arch/arc/configs/tb10x_defconf<wbr>ig              |   4 +-<br>
  arch/arc/configs/vdk_hs38_defc<wbr>onfig           |   2 +-<br>
  arch/arc/configs/vdk_hs38_smp_<wbr>defconfig       |   2 +-<br>
  arch/arc/mm/init.c                            |  14 +-<br>
  arch/arm/Kconfig                              |   2 +-<br>
  arch/arm/boot/dts/arm/integrat<wbr>orap.dts        |   2 +-<br>
  arch/arm/boot/dts/arm/integrat<wbr>orcp.dts        |   2 +-<br>
  .../dts/aspeed/aspeed-bmc-face<wbr>book-cmm.dts    |   2 +-<br>
  .../aspeed/aspeed-bmc-facebook<wbr>-galaxy100.dts  |   2 +-<br>
  .../aspeed/aspeed-bmc-facebook<wbr>-minipack.dts   |   2 +-<br>
  .../aspeed/aspeed-bmc-facebook<wbr>-wedge100.dts   |   2 +-<br>
  .../aspeed/aspeed-bmc-facebook<wbr>-wedge40.dts    |   2 +-<br>
  .../dts/aspeed/aspeed-bmc-face<wbr>book-yamp.dts   |   2 +-<br>
  .../ast2600-facebook-netbmc-co<wbr>mmon.dtsi       |   2 +-<br>
  arch/arm/boot/dts/hisilicon/hi<wbr>3620-hi4511.dts |   2 +-<br>
  .../ixp/intel-ixp42x-welltech-<wbr>epbx100.dts     |   2 +-<br>
  arch/arm/boot/dts/nspire/nspir<wbr>e-classic.dtsi  |   2 +-<br>
  arch/arm/boot/dts/nspire/nspir<wbr>e-cx.dts        |   2 +-<br>
  .../boot/dts/samsung/exynos421<wbr>0-origen.dts    |   2 +-<br>
  .../boot/dts/samsung/exynos421<wbr>0-smdkv310.dts  |   2 +-<br>
  .../boot/dts/samsung/exynos441<wbr>2-smdk4412.dts  |   2 +-<br>
  .../boot/dts/samsung/exynos525<wbr>0-smdk5250.dts  |   2 +-<br>
  arch/arm/boot/dts/st/ste-nomad<wbr>ik-nhk15.dts    |   2 +-<br>
  arch/arm/boot/dts/st/ste-nomad<wbr>ik-s8815.dts    |   2 +-<br>
  arch/arm/boot/dts/st/stm32429i<wbr>-eval.dts       |   2 +-<br>
  arch/arm/boot/dts/st/stm32746g<wbr>-eval.dts       |   2 +-<br>
  arch/arm/boot/dts/st/stm32f429<wbr>-disco.dts      |   2 +-<br>
  arch/arm/boot/dts/st/stm32f469<wbr>-disco.dts      |   2 +-<br>
  arch/arm/boot/dts/st/stm32f746<wbr>-disco.dts      |   2 +-<br>
  arch/arm/boot/dts/st/stm32f769<wbr>-disco.dts      |   2 +-<br>
  arch/arm/boot/dts/st/stm32h743<wbr>i-disco.dts     |   2 +-<br>
  arch/arm/boot/dts/st/stm32h743<wbr>i-eval.dts      |   2 +-<br>
  arch/arm/boot/dts/st/stm32h747<wbr>i-disco.dts     |   2 +-<br>
  arch/arm/boot/dts/st/stm32h750<wbr>i-art-pi.dts    |   2 +-<br>
  arch/arm/configs/aspeed_g4_def<wbr>config          |   8 +-<br>
  arch/arm/configs/aspeed_g5_def<wbr>config          |   8 +-<br>
  arch/arm/configs/assabet_defco<wbr>nfig            |   4 +-<br>
  arch/arm/configs/at91_dt_defco<wbr>nfig            |   4 +-<br>
  arch/arm/configs/axm55xx_defco<wbr>nfig            |   2 +-<br>
  arch/arm/configs/bcm2835_defco<wbr>nfig            |   2 +-<br>
  arch/arm/configs/clps711x_defc<wbr>onfig           |   4 +-<br>
  arch/arm/configs/collie_defcon<wbr>fig             |   4 +-<br>
  arch/arm/configs/davinci_all_d<wbr>efconfig        |   2 +-<br>
  arch/arm/configs/exynos_defcon<wbr>fig             |   4 +-<br>
  arch/arm/configs/footbridge_de<wbr>fconfig         |   2 +-<br>
  arch/arm/configs/gemini_defcon<wbr>fig             |   2 +-<br>
  arch/arm/configs/h3600_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/hisi_defconfi<wbr>g               |   4 +-<br>
  arch/arm/configs/imx_v4_v5_def<wbr>config          |   2 +-<br>
  arch/arm/configs/imx_v6_v7_def<wbr>config          |   4 +-<br>
  arch/arm/configs/integrator_de<wbr>fconfig         |   2 +-<br>
  arch/arm/configs/ixp4xx_defcon<wbr>fig             |   2 +-<br>
  arch/arm/configs/keystone_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/lpc18xx_defco<wbr>nfig            |  12 +-<br>
  arch/arm/configs/lpc32xx_defco<wbr>nfig            |   4 +-<br>
  arch/arm/configs/milbeaut_m10v<wbr>_defconfig      |   2 +-<br>
  arch/arm/configs/multi_v4t_def<wbr>config          |   2 +-<br>
  arch/arm/configs/multi_v5_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/multi_v7_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/mvebu_v7_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/mxs_<wbr>defconfig                |   2 +-<br>
  arch/arm/configs/neponset_defc<wbr>onfig           |   4 +-<br>
  arch/arm/configs/nhk8815_defco<wbr>nfig            |   2 +-<br>
  arch/arm/configs/omap1_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/omap2plus_def<wbr>config          |   2 +-<br>
  arch/arm/configs/pxa910_defcon<wbr>fig             |   2 +-<br>
  arch/arm/configs/pxa_<wbr>defconfig                |   4 +-<br>
  arch/arm/configs/qcom_defconfi<wbr>g               |   2 +-<br>
  arch/arm/configs/rpc_<wbr>defconfig                |   2 +-<br>
  arch/arm/configs/s3c6400_defco<wbr>nfig            |   4 +-<br>
  arch/arm/configs/s5pv210_defco<wbr>nfig            |   4 +-<br>
  arch/arm/configs/sama5_defconf<wbr>ig              |   4 +-<br>
  arch/arm/configs/sama7_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/shmobile_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/socfpga_defco<wbr>nfig            |   2 +-<br>
  arch/arm/configs/sp7021_defcon<wbr>fig             |  12 +-<br>
  arch/arm/configs/spear13xx_def<wbr>config          |   2 +-<br>
  arch/arm/configs/spear3xx_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/spear6xx_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/spitz_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/stm32_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/sunxi_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/tegra_defconf<wbr>ig              |   2 +-<br>
  arch/arm/configs/u8500_defconf<wbr>ig              |   4 +-<br>
  arch/arm/configs/versatile_def<wbr>config          |   2 +-<br>
  arch/arm/configs/vexpress_defc<wbr>onfig           |   2 +-<br>
  arch/arm/configs/vf610m4_defco<wbr>nfig            |  10 +-<br>
  arch/arm/configs/vt8500_v6_v7_<wbr>defconfig       |   2 +-<br>
  arch/arm/configs/wpcm450_defco<wbr>nfig            |   2 +-<br>
  arch/arm/include/uapi/asm/setu<wbr>p.h             |  10 -<br>
  arch/arm/kernel/atags_compat.<wbr>c                |  10 -<br>
  arch/arm/kernel/atags_parse.c                 |  16 +-<br>
  arch/arm/kernel/setup.c                       |   2 +-<br>
  arch/arm/mm/init.c                            |  24 +-<br>
  arch/arm64/configs/defconfig                  |   2 +-<br>
  arch/arm64/kernel/setup.c                     |   2 +-<br>
  arch/arm64/mm/init.c                          |  17 +-<br>
  arch/csky/kernel/setup.c                      |  24 +-<br>
  arch/csky/mm/init.c                           |   2 +-<br>
  arch/hexagon/configs/comet_def<wbr>config          |   2 +-<br>
  arch/loongarch/configs/loongso<wbr>n3_defconfig    |   2 +-<br>
  arch/loongarch/kernel/mem.c                   |   2 +-<br>
  arch/loongarch/kernel/setup.c                 |   4 +-<br>
  arch/m68k/configs/amiga_defcon<wbr>fig             |   2 +-<br>
  arch/m68k/configs/apollo_defco<wbr>nfig            |   2 +-<br>
  arch/m68k/configs/atari_defcon<wbr>fig             |   2 +-<br>
  arch/m68k/configs/bvme6000_def<wbr>config          |   2 +-<br>
  arch/m68k/configs/hp300_defcon<wbr>fig             |   2 +-<br>
  arch/m68k/configs/mac_defconfi<wbr>g               |   2 +-<br>
  arch/m68k/configs/multi_defcon<wbr>fig             |   2 +-<br>
  arch/m68k/configs/mvme147_defc<wbr>onfig           |   2 +-<br>
  arch/m68k/configs/mvme16x_defc<wbr>onfig           |   2 +-<br>
  arch/m68k/configs/q40_defconfi<wbr>g               |   2 +-<br>
  arch/m68k/configs/stmark2_defc<wbr>onfig           |   2 +-<br>
  arch/m68k/configs/sun3_defconf<wbr>ig              |   2 +-<br>
  arch/m68k/configs/sun3x_defcon<wbr>fig             |   2 +-<br>
  arch/m68k/kernel/setup_mm.c                   |  12 +-<br>
  arch/m68k/kernel/setup_no.c                   |  12 +-<br>
  arch/m68k/kernel/uboot.c                      |  17 +-<br>
  arch/microblaze/kernel/cpu/mb.<wbr>c               |   2 +-<br>
  arch/microblaze/kernel/setup.<wbr>c                |   2 +-<br>
  arch/microblaze/mm/init.c                     |  12 +-<br>
  arch/mips/ath79/prom.c                        |  12 +-<br>
  arch/mips/configs/ath25_defcon<wbr>fig             |  12 +-<br>
  arch/mips/configs/ath79_defcon<wbr>fig             |   4 +-<br>
  arch/mips/configs/bcm47xx_defc<wbr>onfig           |   2 +-<br>
  arch/mips/configs/bigsur_defco<wbr>nfig            |   2 +-<br>
  arch/mips/configs/bmips_be_def<wbr>config          |   2 +-<br>
  arch/mips/configs/bmips_stb_de<wbr>fconfig         |  14 +-<br>
  arch/mips/configs/cavium_octeo<wbr>n_defconfig     |   2 +-<br>
  arch/mips/configs/eyeq5_defcon<wbr>fig             |   2 +-<br>
  arch/mips/configs/eyeq6_defcon<wbr>fig             |   2 +-<br>
  arch/mips/configs/generic_defc<wbr>onfig           |   2 +-<br>
  arch/mips/configs/gpr_defconfi<wbr>g               |   2 +-<br>
  arch/mips/configs/lemote2f_def<wbr>config          |   2 +-<br>
  arch/mips/configs/loongson2k_d<wbr>efconfig        |   2 +-<br>
  arch/mips/configs/loongson3_de<wbr>fconfig         |   2 +-<br>
  arch/mips/configs/malta_defcon<wbr>fig             |   2 +-<br>
  arch/mips/configs/mtx1_defconf<wbr>ig              |   2 +-<br>
  arch/mips/configs/rb532_defcon<wbr>fig             |   2 +-<br>
  arch/mips/configs/rbtx49xx_def<wbr>config          |   2 +-<br>
  arch/mips/configs/rt305x_defco<wbr>nfig            |   4 +-<br>
  arch/mips/configs/sb1250_swarm<wbr>_defconfig      |   2 +-<br>
  arch/mips/configs/xway_defconf<wbr>ig              |   4 +-<br>
  arch/mips/kernel/setup.c                      |  53 ++-<br>
  arch/mips/mm/init.c                           |   2 +-<br>
  arch/mips/sibyte/common/cfe.c                 |  36 +-<br>
  arch/mips/sibyte/swarm/setup.<wbr>c                |   2 +-<br>
  arch/nios2/kernel/setup.c                     |  20 +-<br>
  arch/openrisc/configs/or1klite<wbr>x_defconfig     |   2 +-<br>
  arch/openrisc/configs/or1ksim_<wbr>defconfig       |   4 +-<br>
  arch/openrisc/configs/simple_s<wbr>mp_defconfig    |  14 +-<br>
  arch/openrisc/configs/virt_def<wbr>config          |   2 +-<br>
  arch/openrisc/kernel/setup.c                  |  24 +-<br>
  arch/openrisc/kernel/vmlinux.<wbr>h                |   2 +-<br>
  arch/parisc/boot/compressed/mi<wbr>sc.c            |   2 +-<br>
  arch/parisc/configs/generic-32<wbr>bit_defconfig   |   2 +-<br>
  arch/parisc/configs/generic-64<wbr>bit_defconfig   |   2 +-<br>
  arch/parisc/defpalo.conf                      |   2 +-<br>
  arch/parisc/kernel/pdt.c                      |   6 +-<br>
  arch/parisc/kernel/setup.c                    |   8 +-<br>
  arch/parisc/mm/init.c                         |  32 +-<br>
  arch/powerpc/configs/44x/akebo<wbr>no_defconfig    |   2 +-<br>
  arch/powerpc/configs/44x/arche<wbr>s_defconfig     |   2 +-<br>
  arch/powerpc/configs/44x/bambo<wbr>o_defconfig     |   2 +-<br>
  arch/powerpc/configs/44x/blues<wbr>tone_defconfig  |   2 +-<br>
  .../powerpc/configs/44x/canyon<wbr>lands_defconfig |   2 +-<br>
  arch/powerpc/configs/44x/ebony<wbr>_defconfig      |   2 +-<br>
  arch/powerpc/configs/44x/eiger<wbr>_defconfig      |   2 +-<br>
  arch/powerpc/configs/44x/fsp2_<wbr>defconfig       |  10 +-<br>
  arch/powerpc/configs/44x/icon_<wbr>defconfig       |   2 +-<br>
  arch/powerpc/configs/44x/iss47<wbr>6-smp_defconfig |   2 +-<br>
  arch/powerpc/configs/44x/katma<wbr>i_defconfig     |   2 +-<br>
  arch/powerpc/configs/44x/raini<wbr>er_defconfig    |   2 +-<br>
  arch/powerpc/configs/44x/redwo<wbr>od_defconfig    |   2 +-<br>
  arch/powerpc/configs/44x/sam44<wbr>0ep_defconfig   |   2 +-<br>
  arch/powerpc/configs/44x/sequo<wbr>ia_defconfig    |   2 +-<br>
  arch/powerpc/configs/44x/taish<wbr>an_defconfig    |   2 +-<br>
  arch/powerpc/configs/44x/warp_<wbr>defconfig       |   2 +-<br>
  arch/powerpc/configs/52xx/cm52<wbr>00_defconfig    |   2 +-<br>
  arch/powerpc/configs/52xx/lite<wbr>5200b_defconfig |   2 +-<br>
  arch/powerpc/configs/52xx/moti<wbr>onpro_defconfig |   2 +-<br>
  arch/powerpc/configs/52xx/tqm5<wbr>200_defconfig   |   2 +-<br>
  arch/powerpc/configs/83xx/asp8<wbr>347_defconfig   |   2 +-<br>
  .../configs/83xx/mpc8313_rdb_d<wbr>efconfig        |   2 +-<br>
  .../configs/83xx/mpc8315_rdb_d<wbr>efconfig        |   2 +-<br>
  .../configs/83xx/mpc832x_rdb_d<wbr>efconfig        |   2 +-<br>
  .../configs/83xx/mpc834x_itx_d<wbr>efconfig        |   2 +-<br>
  .../configs/83xx/mpc834x_itxgp<wbr>_defconfig      |   2 +-<br>
  .../configs/83xx/mpc836x_rdk_d<wbr>efconfig        |   2 +-<br>
  .../configs/83xx/mpc837x_rdb_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/85xx/ge_i<wbr>mp3a_defconfig  |   2 +-<br>
  arch/powerpc/configs/85xx/ksi8<wbr>560_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/socr<wbr>ates_defconfig  |   2 +-<br>
  arch/powerpc/configs/85xx/stx_<wbr>gp3_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/tqm8<wbr>540_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/tqm8<wbr>541_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/tqm8<wbr>548_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/tqm8<wbr>555_defconfig   |   2 +-<br>
  arch/powerpc/configs/85xx/tqm8<wbr>560_defconfig   |   2 +-<br>
  .../configs/85xx/xes_mpc85xx_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/amigaone_<wbr>defconfig       |   2 +-<br>
  arch/powerpc/configs/cell_defc<wbr>onfig           |   2 +-<br>
  arch/powerpc/configs/chrp32_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/fsl-emb-n<wbr>onhw.config     |   2 +-<br>
  arch/powerpc/configs/g5_defcon<wbr>fig             |   2 +-<br>
  arch/powerpc/configs/gamecube_<wbr>defconfig       |   2 +-<br>
  arch/powerpc/configs/holly_def<wbr>config          |   2 +-<br>
  arch/powerpc/configs/linkstati<wbr>on_defconfig    |   2 +-<br>
  arch/powerpc/configs/mgcoge_de<wbr>fconfig         |   4 +-<br>
  arch/powerpc/configs/microwatt<wbr>_defconfig      |   2 +-<br>
  arch/powerpc/configs/mpc512x_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/mpc5200_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/mpc83xx_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/pasemi_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/pmac32_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/powernv_d<wbr>efconfig        |   2 +-<br>
  arch/powerpc/configs/ppc44x_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/ppc64_def<wbr>config          |   2 +-<br>
  arch/powerpc/configs/ppc64e_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/ppc6xx_de<wbr>fconfig         |   2 +-<br>
  arch/powerpc/configs/ps3_defco<wbr>nfig            |   2 +-<br>
  arch/powerpc/configs/skiroot_d<wbr>efconfig        |  12 +-<br>
  arch/powerpc/configs/wii_defco<wbr>nfig            |   2 +-<br>
  arch/powerpc/kernel/prom.c                    |  22 +-<br>
  arch/powerpc/kernel/prom_init.<wbr>c               |   6 +-<br>
  arch/powerpc/kernel/setup-comm<wbr>on.c            |  25 +-<br>
  arch/powerpc/kernel/setup_32.<wbr>c                |   2 +-<br>
  arch/powerpc/kernel/setup_64.<wbr>c                |   2 +-<br>
  arch/powerpc/mm/init_32.c                     |   2 +-<br>
  arch/powerpc/platforms/52xx/li<wbr>te5200.c        |   2 +-<br>
  arch/powerpc/platforms/83xx/km<wbr>83xx.c          |   2 +-<br>
  arch/powerpc/platforms/85xx/mp<wbr>c85xx_mds.c     |   2 +-<br>
  arch/powerpc/platforms/chrp/se<wbr>tup.c           |   2 +-<br>
  .../platforms/embedded6xx/link<wbr>station.c       |   2 +-<br>
  .../platforms/embedded6xx/stor<wbr>center.c        |   2 +-<br>
  arch/powerpc/platforms/powerma<wbr>c/setup.c       |   8 +-<br>
  arch/riscv/configs/defconfig                  |   2 +-<br>
  arch/riscv/configs/nommu_k210_<wbr>defconfig       |  16 +-<br>
  arch/riscv/configs/nommu_virt_<wbr>defconfig       |  12 +-<br>
  arch/riscv/mm/init.c                          |   4 +-<br>
  arch/s390/boot/ipl_parm.c                     |   2 +-<br>
  arch/s390/boot/startup.c                      |   4 +-<br>
  arch/s390/configs/zfcpdump_def<wbr>config          |   2 +-<br>
  arch/s390/kernel/setup.c                      |  10 +-<br>
  arch/s390/mm/init.c                           |   2 +-<br>
  arch/sh/configs/apsh4a3a_defco<wbr>nfig            |   2 +-<br>
  arch/sh/configs/apsh4ad0a_defc<wbr>onfig           |   2 +-<br>
  arch/sh/configs/ecovec24-romim<wbr>age_defconfig   |   2 +-<br>
  arch/sh/configs/edosk7760_defc<wbr>onfig           |   2 +-<br>
  arch/sh/configs/kfr2r09-romima<wbr>ge_defconfig    |   2 +-<br>
  arch/sh/configs/kfr2r09_defcon<wbr>fig             |   2 +-<br>
  arch/sh/configs/magicpanelr2_d<wbr>efconfig        |   2 +-<br>
  arch/sh/configs/migor_defconfi<wbr>g               |   2 +-<br>
  arch/sh/configs/rsk7201_defcon<wbr>fig             |   2 +-<br>
  arch/sh/configs/rsk7203_defcon<wbr>fig             |   2 +-<br>
  arch/sh/configs/sdk7786_defcon<wbr>fig             |   8 +-<br>
  arch/sh/configs/se7206_defconf<wbr>ig              |   2 +-<br>
  arch/sh/configs/se7705_defconf<wbr>ig              |   2 +-<br>
  arch/sh/configs/se7722_defconf<wbr>ig              |   2 +-<br>
  arch/sh/configs/se7751_defconf<wbr>ig              |   2 +-<br>
  arch/sh/configs/secureedge5410<wbr>_defconfig      |   2 +-<br>
  arch/sh/configs/sh03_<wbr>defconfig                |   2 +-<br>
  arch/sh/configs/sh7757lcr_defc<wbr>onfig           |   2 +-<br>
  arch/sh/configs/titan_defconfi<wbr>g               |   2 +-<br>
  arch/sh/configs/ul2_defconfig                 |   2 +-<br>
  arch/sh/configs/urquell_defcon<wbr>fig             |   2 +-<br>
  arch/sh/include/asm/setup.h                   |   1 -<br>
  arch/sh/kernel/head_32.S                      |   2 +-<br>
  arch/sh/kernel/setup.c                        |  27 +-<br>
  arch/sparc/boot/piggyback.c                   |   4 +-<br>
  arch/sparc/configs/sparc32_def<wbr>config          |   2 +-<br>
  arch/sparc/configs/sparc64_def<wbr>config          |   2 +-<br>
  arch/sparc/kernel/head_32.S                   |   4 +-<br>
  arch/sparc/kernel/head_64.S                   |   6 +-<br>
  arch/sparc/kernel/setup_32.c                  |   9 +-<br>
  arch/sparc/kernel/setup_64.c                  |   9 +-<br>
  arch/sparc/mm/init_32.c                       |  22 +-<br>
  arch/sparc/mm/init_64.c                       |  20 +-<br>
  arch/um/kernel/Makefile                       |   2 +-<br>
  arch/um/kernel/initrd.c                       |   6 +-<br>
  arch/x86/Kconfig                              |   2 +-<br>
  arch/x86/boot/header.S                        |   2 +-<br>
  arch/x86/boot/startup/sme.c                   |   2 +-<br>
  arch/x86/configs/i386_defconfi<wbr>g               |   2 +-<br>
  arch/x86/configs/x86_64_defcon<wbr>fig             |   2 +-<br>
  arch/x86/include/uapi/asm/boot<wbr>param.h         |   7 +-<br>
  arch/x86/kernel/cpu/microcode/<wbr>amd.c           |   2 +-<br>
  arch/x86/kernel/cpu/microcode/<wbr>core.c          |  12 +-<br>
  arch/x86/kernel/cpu/microcode/<wbr>intel.c         |   2 +-<br>
  arch/x86/kernel/cpu/microcode/<wbr>internal.h      |   2 +-<br>
  arch/x86/kernel/devicetree.c                  |   2 +-<br>
  arch/x86/kernel/setup.c                       |  39 +-<br>
  arch/x86/mm/init.c                            |   8 +-<br>
  arch/x86/mm/init_32.c                         |   2 +-<br>
  arch/x86/mm/init_64.c                         |   2 +-<br>
  arch/x86/tools/relocs.c                       |   2 +-<br>
  arch/xtensa/Kconfig                           |   2 +-<br>
  arch/xtensa/boot/dts/csp.dts                  |   2 +-<br>
  arch/xtensa/configs/audio_kc70<wbr>5_defconfig     |   2 +-<br>
  arch/xtensa/configs/cadence_cs<wbr>p_defconfig     |  12 +-<br>
  arch/xtensa/configs/generic_kc<wbr>705_defconfig   |   2 +-<br>
  arch/xtensa/configs/nommu_kc70<wbr>5_defconfig     |  12 +-<br>
  arch/xtensa/configs/smp_lx200_<wbr>defconfig       |   2 +-<br>
  arch/xtensa/configs/virt_defco<wbr>nfig            |   2 +-<br>
  arch/xtensa/configs/xip_kc705_<wbr>defconfig       |   2 +-<br>
  arch/xtensa/kernel/setup.c                    |  26 +-<br>
  drivers/acpi/Kconfig                          |   2 +-<br>
  drivers/acpi/tables.c                         |  10 +-<br>
  drivers/base/firmware_loader/m<wbr>ain.c           |   2 +-<br>
  drivers/block/Kconfig                         |   8 +-<br>
  drivers/block/brd.c                           |  20 +-<br>
  drivers/firmware/efi/efi.c                    |  10 +-<br>
  .../firmware/efi/libstub/efi-s<wbr>tub-helper.c    |   5 +-<br>
  drivers/gpu/drm/ci/arm.config                 |   2 +-<br>
  drivers/gpu/drm/ci/arm64.confi<wbr>g               |   2 +-<br>
  drivers/gpu/drm/ci/x86_64.conf<wbr>ig              |   2 +-<br>
  drivers/of/fdt.c                              |  18 +-<br>
  fs/ext2/ext2.h                                |   9 -<br>
  fs/init.c                                     |  14 -<br>
  include/asm-generic/vmlinux.ld<wbr>s.h             |   8 +-<br>
  include/linux/ext2_fs.h                       |  13 -<br>
  include/linux/init_syscalls.h                 |   1 -<br>
  include/linux/initramfs.h                     |  26 ++<br>
  include/linux/initrd.h                        |  37 --<br>
  include/linux/root_dev.h                      |   1 -<br>
  include/linux/syscalls.h                      |   1 -<br>
  include/uapi/linux/sysctl.h                   |   1 -<br>
  init/.kunitconfig                             |   2 +-<br>
  init/Kconfig                                  |  28 +-<br>
  init/Makefile                                 |   6 +-<br>
  init/do_mounts.c                              |  28 +-<br>
  init/do_mounts.h                              |  42 --<br>
  init/do_mounts_initrd.c                       | 154 -------<br>
  init/do_mounts_rd.c                           | 334 ---------------<br>
  init/initramfs.c                              | 152 ++++---<br>
  init/main.c                                   |  66 +--<br>
  kernel/sys.c                                  |   7 +-<br>
  kernel/sysctl.c                               |   2 +-<br>
  kernel/umh.c                                  |   2 +-<br>
  scripts/package/builddeb                      |   2 +-<br>
  .../ktest/examples/bootconfigs<wbr>/tracing.bconf  |   3 -<br>
  tools/testing/selftests/bpf/co<wbr>nfig.aarch64    |   2 +-<br>
  tools/testing/selftests/bpf/co<wbr>nfig.ppc64el    |   2 +-<br>
  tools/testing/selftests/bpf/co<wbr>nfig.riscv64    |   2 +-<br>
  tools/testing/selftests/bpf/co<wbr>nfig.s390x      |   2 +-<br>
  tools/testing/selftests/kho/vm<wbr>test.sh         |   2 +-<br>
  .../testing/selftests/nolibc/M<wbr>akefile.nolibc  |   4 +-<br>
  tools/testing/selftests/vsock/<wbr>config          |   2 +-<br>
  .../selftests/wireguard/qemu/k<wbr>ernel.config    |   2 +-<br>
  usr/Kconfig                                   |  70 ++--<br>
  usr/Makefile                                  |   2 +-<br>
  usr/initramfs_data.S                          |   4 +-<br>
  385 files changed, 969 insertions(+), 2346 deletions(-)<br>
  delete mode 100644 Documentation/admin-guide/init<wbr>rd.rst<br>
  delete mode 100644 Documentation/power/swsusp-dmc<wbr>rypt.rst<br>
  create mode 100644 include/linux/initramfs.h<br>
  delete mode 100644 include/linux/initrd.h<br>
  delete mode 100644 init/do_mounts_initrd.c<br>
  delete mode 100644 init/do_mounts_rd.c<br>
<br>
<br>
base-commit: 76eeb9b8de9880ca38696b2fb56ac4<wbr>5ac0a25c6c<br>
--<br>
2.47.2<br>
<br>
<br>
</blockquote>
<br>
</blockquote>