* [PATCH RESEND 13/62] ext2: remove ext2_image_size and associated code
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It is not used anymore
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
fs/ext2/ext2.h | 9 ---------
include/linux/ext2_fs.h | 13 -------------
2 files changed, 22 deletions(-)
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h
index cf97b76e9fd3..d623a14040d9 100644
--- a/fs/ext2/ext2.h
+++ b/fs/ext2/ext2.h
@@ -608,15 +608,6 @@ struct ext2_dir_entry_2 {
~EXT2_DIR_ROUND)
#define EXT2_MAX_REC_LEN ((1<<16)-1)
-static inline void verify_offsets(void)
-{
-#define A(x,y) BUILD_BUG_ON(x != offsetof(struct ext2_super_block, y));
- A(EXT2_SB_MAGIC_OFFSET, s_magic);
- A(EXT2_SB_BLOCKS_OFFSET, s_blocks_count);
- A(EXT2_SB_BSIZE_OFFSET, s_log_block_size);
-#undef A
-}
-
/*
* ext2 mount options
*/
diff --git a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h
index 1fef88569037..e5ebe6cdf06c 100644
--- a/include/linux/ext2_fs.h
+++ b/include/linux/ext2_fs.h
@@ -27,17 +27,4 @@
*/
#define EXT2_LINK_MAX 32000
-#define EXT2_SB_MAGIC_OFFSET 0x38
-#define EXT2_SB_BLOCKS_OFFSET 0x04
-#define EXT2_SB_BSIZE_OFFSET 0x18
-
-static inline u64 ext2_image_size(void *ext2_sb)
-{
- __u8 *p = ext2_sb;
- if (*(__le16 *)(p + EXT2_SB_MAGIC_OFFSET) != cpu_to_le16(EXT2_SUPER_MAGIC))
- return 0;
- return (u64)le32_to_cpup((__le32 *)(p + EXT2_SB_BLOCKS_OFFSET)) <<
- le32_to_cpup((__le32 *)(p + EXT2_SB_BSIZE_OFFSET));
-}
-
#endif /* _LINUX_EXT2_FS_H */
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 14/62] init: m68k, mips, powerpc, s390, sh: remove Root_RAM0
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Root_RAM0 used to specify ramdisk as root device.
It means nothing now, so let's remove it
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/m68k/kernel/uboot.c | 1 -
arch/mips/kernel/setup.c | 1 -
arch/powerpc/kernel/setup-common.c | 11 ++++-------
arch/powerpc/platforms/powermac/setup.c | 4 +---
arch/s390/kernel/setup.c | 2 --
arch/sh/kernel/setup.c | 4 +---
include/linux/root_dev.h | 1 -
init/do_mounts.c | 2 --
8 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c
index fa7c279ead5d..d278060a250c 100644
--- a/arch/m68k/kernel/uboot.c
+++ b/arch/m68k/kernel/uboot.c
@@ -83,7 +83,6 @@ static void __init parse_uboot_commandline(char *commandp, int size)
(uboot_initrd_end > uboot_initrd_start)) {
initrd_start = uboot_initrd_start;
initrd_end = uboot_initrd_end;
- ROOT_DEV = Root_RAM0;
pr_info("initrd at 0x%lx:0x%lx\n", initrd_start, initrd_end);
}
#endif /* if defined(CONFIG_BLK_DEV_INITRD) */
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 11b9b6b63e19..a78e24873231 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -173,7 +173,6 @@ static unsigned long __init init_initrd(void)
goto disable;
}
- ROOT_DEV = Root_RAM0;
return PFN_UP(end);
disable:
initrd_start = 0;
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 68d47c53876c..97d330f3b8f1 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -363,17 +363,14 @@ void __init check_for_initrd(void)
DBG(" -> check_for_initrd() initrd_start=0x%lx initrd_end=0x%lx\n",
initrd_start, initrd_end);
- /* If we were passed an initrd, set the ROOT_DEV properly if the values
- * look sensible. If not, clear initrd reference.
+ /* If we were not passed an sensible initramfs, clear initramfs reference.
*/
- if (is_kernel_addr(initrd_start) && is_kernel_addr(initrd_end) &&
- initrd_end > initrd_start)
- ROOT_DEV = Root_RAM0;
- else
+ if (!(is_kernel_addr(initrd_start) && is_kernel_addr(initrd_end) &&
+ initrd_end > initrd_start))
initrd_start = initrd_end = 0;
if (initrd_start)
- pr_info("Found initrd at 0x%lx:0x%lx\n", initrd_start, initrd_end);
+ pr_info("Found initramfs at 0x%lx:0x%lx\n", initrd_start, initrd_end);
DBG(" <- check_for_initrd()\n");
#endif /* CONFIG_BLK_DEV_INITRD */
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index eb092f293113..237d8386a3f4 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -296,9 +296,7 @@ static void __init pmac_setup_arch(void)
#endif
#ifdef CONFIG_PPC32
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start)
- ROOT_DEV = Root_RAM0;
- else
+ if (!initrd_start)
#endif
ROOT_DEV = DEFAULT_ROOT_DEVICE;
#endif
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 7b529868789f..a4ce721b7fe8 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -923,8 +923,6 @@ void __init setup_arch(char **cmdline_p)
/* boot_command_line has been already set up in early.c */
*cmdline_p = boot_command_line;
- ROOT_DEV = Root_RAM0;
-
setup_initial_init_mm(_text, _etext, _edata, _end);
if (IS_ENABLED(CONFIG_EXPOLINE_AUTO))
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 50f1d39fe34f..c4312ee13db9 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -147,10 +147,8 @@ void __init check_for_initrd(void)
/*
* If we got this far in spite of the boot loader's best efforts
- * to the contrary, assume we actually have a valid initrd and
- * fix up the root dev.
+ * to the contrary, assume we actually have a valid initramfs.
*/
- ROOT_DEV = Root_RAM0;
/*
* Address sanitization
diff --git a/include/linux/root_dev.h b/include/linux/root_dev.h
index 847c9a06101b..e411533b90b7 100644
--- a/include/linux/root_dev.h
+++ b/include/linux/root_dev.h
@@ -10,7 +10,6 @@ enum {
Root_NFS = MKDEV(UNNAMED_MAJOR, 255),
Root_CIFS = MKDEV(UNNAMED_MAJOR, 254),
Root_Generic = MKDEV(UNNAMED_MAJOR, 253),
- Root_RAM0 = MKDEV(RAMDISK_MAJOR, 0),
};
extern dev_t ROOT_DEV;
diff --git a/init/do_mounts.c b/init/do_mounts.c
index f0b1a83dbda4..5c407ca54063 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -437,8 +437,6 @@ static dev_t __init parse_root_device(char *root_device_name)
return Root_NFS;
if (strcmp(root_device_name, "/dev/cifs") == 0)
return Root_CIFS;
- if (strcmp(root_device_name, "/dev/ram") == 0)
- return Root_RAM0;
error = early_lookup_bdev(root_device_name, &dev);
if (error) {
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 15/62] doc: modernize Documentation/admin-guide/blockdev/ramdisk.rst
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Update it to reflect initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
.../admin-guide/blockdev/ramdisk.rst | 103 ++----------------
1 file changed, 7 insertions(+), 96 deletions(-)
diff --git a/Documentation/admin-guide/blockdev/ramdisk.rst b/Documentation/admin-guide/blockdev/ramdisk.rst
index e57c61108dbc..6289e085f18f 100644
--- a/Documentation/admin-guide/blockdev/ramdisk.rst
+++ b/Documentation/admin-guide/blockdev/ramdisk.rst
@@ -5,18 +5,14 @@ Using the RAM disk block device with Linux
.. Contents:
1) Overview
- 2) Kernel Command Line Parameters
- 3) Using "rdev"
- 4) An Example of Creating a Compressed RAM Disk
+ 2) Module parameters
1) Overview
-----------
-The RAM disk driver is a way to use main system memory as a block device. It
-is required for initrd, an initial filesystem used if you need to load modules
-in order to access the root filesystem (see Documentation/admin-guide/initrd.rst). It can
-also be used for a temporary filesystem for crypto work, since the contents
+The RAM disk driver is a way to use main system memory as a block device.
+It can also be used for a temporary filesystem for crypto work, since the contents
are erased on reboot.
The RAM disk dynamically grows as more space is required. It does this by using
@@ -30,109 +26,24 @@ and (re)build the kernel.
To use RAM disk support with your system, run './MAKEDEV ram' from the /dev
directory. RAM disks are all major number 1, and start with minor number 0
-for /dev/ram0, etc. If used, modern kernels use /dev/ram0 for an initrd.
-
-The new RAM disk also has the ability to load compressed RAM disk images,
-allowing one to squeeze more programs onto an average installation or
-rescue floppy disk.
+for /dev/ram0, etc.
-2) Parameters
----------------------------------
+2) Module parameters
+--------------------
-2a) Kernel Command Line Parameters
-
- ramdisk_size=N
+ rd_size=N
Size of the ramdisk.
This parameter tells the RAM disk driver to set up RAM disks of N k size. The
default is 4096 (4 MB).
-2b) Module parameters
-
rd_nr
/dev/ramX devices created.
max_part
Maximum partition number.
- rd_size
- See ramdisk_size.
-
-3) Using "rdev"
----------------
-
-"rdev" is an obsolete, deprecated, antiquated utility that could be used
-to set the boot device in a Linux kernel image.
-
-Instead of using rdev, just place the boot device information on the
-kernel command line and pass it to the kernel from the bootloader.
-
-You can also pass arguments to the kernel by setting FDARGS in
-arch/x86/boot/Makefile and specify in initrd image by setting FDINITRD in
-arch/x86/boot/Makefile.
-
-Some of the kernel command line boot options that may apply here are::
-
- ramdisk_size=M
-
-If you make a boot disk that has LILO, then for the above, you would use::
-
- append = "ramdisk_size=M"
-
-4) An Example of Creating a Compressed RAM Disk
------------------------------------------------
-
-To create a RAM disk image, you will need a spare block device to
-construct it on. This can be the RAM disk device itself, or an
-unused disk partition (such as an unmounted swap partition). For this
-example, we will use the RAM disk device, "/dev/ram0".
-
-Note: This technique should not be done on a machine with less than 8 MB
-of RAM. If using a spare disk partition instead of /dev/ram0, then this
-restriction does not apply.
-
-a) Decide on the RAM disk size that you want. Say 2 MB for this example.
- Create it by writing to the RAM disk device. (This step is not currently
- required, but may be in the future.) It is wise to zero out the
- area (esp. for disks) so that maximal compression is achieved for
- the unused blocks of the image that you are about to create::
-
- dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
-
-b) Make a filesystem on it. Say ext2fs for this example::
-
- mke2fs -vm0 /dev/ram0 2048
-
-c) Mount it, copy the files you want to it (eg: /etc/* /dev/* ...)
- and unmount it again.
-
-d) Compress the contents of the RAM disk. The level of compression
- will be approximately 50% of the space used by the files. Unused
- space on the RAM disk will compress to almost nothing::
-
- dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz
-
-e) Put the kernel onto the floppy::
-
- dd if=zImage of=/dev/fd0 bs=1k
-
-f) Put the RAM disk image onto the floppy, after the kernel. Use an offset
- that is slightly larger than the kernel, so that you can put another
- (possibly larger) kernel onto the same floppy later without overlapping
- the RAM disk image. An offset of 400 kB for kernels about 350 kB in
- size would be reasonable. Make sure offset+size of ram_image.gz is
- not larger than the total space on your floppy (usually 1440 kB)::
-
- dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=400
-
-g) Make sure that you have already specified the boot information in
- FDARGS and FDINITRD or that you use a bootloader to pass kernel
- command line boot options to the kernel.
-
-That is it. You now have your boot/root compressed RAM disk floppy. Some
-users may wish to combine steps (d) and (f) by using a pipe.
-
Paul Gortmaker 12/95
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 16/62] brd: remove "ramdisk_size" command line parameter
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It was used mostly for initrd. It could be used only if
brd is built-in. Use "brd.rd_size" instead
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
.../admin-guide/kernel-parameters.txt | 3 ---
Documentation/arch/m68k/kernel-options.rst | 20 ++-----------------
arch/arm/configs/s3c6400_defconfig | 2 +-
drivers/block/brd.c | 10 ----------
4 files changed, 3 insertions(+), 32 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index ad52e3d26014..e862a7b1d2ec 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5279,9 +5279,6 @@
raid= [HW,RAID]
See Documentation/admin-guide/md.rst.
- ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
- See Documentation/admin-guide/blockdev/ramdisk.rst.
-
random.trust_cpu=off
[KNL,EARLY] Disable trusting the use of the CPU's
random number generator (if available) to
diff --git a/Documentation/arch/m68k/kernel-options.rst b/Documentation/arch/m68k/kernel-options.rst
index 2008a20b4329..f6469ebeb2c7 100644
--- a/Documentation/arch/m68k/kernel-options.rst
+++ b/Documentation/arch/m68k/kernel-options.rst
@@ -215,27 +215,11 @@ Devices possible for Atari:
seconds.
-2.6) ramdisk_size=
-------------------
-
-:Syntax: ramdisk_size=<size>
-
-This option instructs the kernel to set up a ramdisk of the given
-size in KBytes. Do not use this option if the ramdisk contents are
-passed by bootstrap! In this case, the size is selected automatically
-and should not be overwritten.
-
-The only application is for root filesystems on floppy disks, that
-should be loaded into memory. To do that, select the corresponding
-size of the disk as ramdisk size, and set the root device to the disk
-drive (with "root=").
-
-
-2.7) swap=
+2.5) swap=
I can't find any sign of this option in 2.2.6.
-2.8) buff=
+2.6) buff=
-----------
I can't find any sign of this option in 2.2.6.
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index a37e6ac40825..23635d5b9322 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -4,7 +4,7 @@ CONFIG_ARCH_MULTI_V6=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_S3C64XX=y
CONFIG_MACH_WLF_CRAGG_6410=y
-CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144"
+CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M"
CONFIG_VFP=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 72f02d2b8a99..05c4325904d2 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -222,16 +222,6 @@ MODULE_LICENSE("GPL");
MODULE_ALIAS_BLOCKDEV_MAJOR(RAMDISK_MAJOR);
MODULE_ALIAS("rd");
-#ifndef MODULE
-/* Legacy boot options - nonmodular */
-static int __init ramdisk_size(char *str)
-{
- rd_size = simple_strtol(str, NULL, 0);
- return 1;
-}
-__setup("ramdisk_size=", ramdisk_size);
-#endif
-
/*
* The device scheme is derived from loop.c. Keep them in synch where possible
* (should share code eventually).
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 17/62] doc: modernize Documentation/filesystems/ramfs-rootfs-initramfs.rst
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Update it to reflect initrd removal.
Also I specified that error reports should
go to linux-doc@vger.kernel.org , because
Rob Landley said that he keeps getting
reports about this document and is unable
to fix them
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
.../filesystems/ramfs-rootfs-initramfs.rst | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.rst b/Documentation/filesystems/ramfs-rootfs-initramfs.rst
index fa4f81099cb4..38a9cf11f547 100644
--- a/Documentation/filesystems/ramfs-rootfs-initramfs.rst
+++ b/Documentation/filesystems/ramfs-rootfs-initramfs.rst
@@ -8,6 +8,8 @@ October 17, 2005
:Author: Rob Landley <rob@landley.net>
+Report errors in this document to <linux-doc@vger.kernel.org>
+
What is ramfs?
--------------
@@ -101,9 +103,9 @@ archive is extracted into it, the kernel will fall through to the older code
to locate and mount a root partition, then exec some variant of /sbin/init
out of that.
-All this differs from the old initrd in several ways:
+All this differs from the old initrd (removed in 2025) in several ways:
- - The old initrd was always a separate file, while the initramfs archive is
+ - The old initrd was always a separate file, while the initramfs archive can be
linked into the linux kernel image. (The directory ``linux-*/usr`` is
devoted to generating this archive during the build.)
@@ -137,7 +139,7 @@ Populating initramfs:
The 2.6 kernel build process always creates a gzipped cpio format initramfs
archive and links it into the resulting kernel binary. By default, this
-archive is empty (consuming 134 bytes on x86).
+archive is nearly empty (consuming 134 bytes on x86).
The config option CONFIG_INITRAMFS_SOURCE (in General Setup in menuconfig,
and living in usr/Kconfig) can be used to specify a source for the
@@ -222,15 +224,13 @@ use in place of the above config file::
External initramfs images:
--------------------------
-If the kernel has initrd support enabled, an external cpio.gz archive can also
-be passed into a 2.6 kernel in place of an initrd. In this case, the kernel
-will autodetect the type (initramfs, not initrd) and extract the external cpio
+If the kernel has CONFIG_BLK_DEV_INITRD enabled, an external cpio.gz archive can also
+be passed into a 2.6 kernel. In this case, the kernel will extract the external cpio
archive into rootfs before trying to run /init.
-This has the memory efficiency advantages of initramfs (no ramdisk block
-device) but the separate packaging of initrd (which is nice if you have
+This is nice if you have
non-GPL code you'd like to run from initramfs, without conflating it with
-the GPL licensed Linux kernel binary).
+the GPL licensed Linux kernel binary.
It can also be used to supplement the kernel's built-in initramfs image. The
files in the external archive will overwrite any conflicting files in
@@ -278,7 +278,7 @@ User Mode Linux, like so::
EOF
gcc -static hello.c -o init
echo init | cpio -o -H newc | gzip > test.cpio.gz
- # Testing external initramfs using the initrd loading mechanism.
+ # Testing external initramfs.
qemu -kernel /boot/vmlinuz -initrd test.cpio.gz /dev/zero
When debugging a normal root filesystem, it's nice to be able to boot with
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 18/62] doc: modernize Documentation/driver-api/early-userspace/early_userspace_support.rst
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Update it to reflect initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
.../early_userspace_support.rst | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/Documentation/driver-api/early-userspace/early_userspace_support.rst b/Documentation/driver-api/early-userspace/early_userspace_support.rst
index 61bdeac1bae5..0ca923c1007b 100644
--- a/Documentation/driver-api/early-userspace/early_userspace_support.rst
+++ b/Documentation/driver-api/early-userspace/early_userspace_support.rst
@@ -127,28 +127,22 @@ mailing list at https://www.zytor.com/mailman/listinfo/klibc
How does it work?
=================
-The kernel has currently 3 ways to mount the root filesystem:
+The kernel has currently 2 ways to mount the root filesystem:
a) all required device and filesystem drivers compiled into the kernel, no
- initrd. init/main.c:init() will call prepare_namespace() to mount the
+ initramfs. init/main.c:kernel_init_freeable() will call prepare_namespace() to mount the
final root filesystem, based on the root= option and optional init= to run
- some other init binary than listed at the end of init/main.c:init().
+ some other init binary than listed at the end of init/main.c:kernel_init().
-b) some device and filesystem drivers built as modules and stored in an
- initrd. The initrd must contain a binary '/linuxrc' which is supposed to
- load these driver modules. It is also possible to mount the final root
- filesystem via linuxrc and use the pivot_root syscall. The initrd is
- mounted and executed via prepare_namespace().
-
-c) using initramfs. The call to prepare_namespace() must be skipped.
+b) using initramfs. The call to prepare_namespace() must be skipped.
This means that a binary must do all the work. Said binary can be stored
into initramfs either via modifying usr/gen_init_cpio.c or via the new
- initrd format, an cpio archive. It must be called "/init". This binary
+ initramfs format, an cpio archive. It must be called "/init". This binary
is responsible to do all the things prepare_namespace() would do.
To maintain backwards compatibility, the /init binary will only run if it
comes via an initramfs cpio archive. If this is not the case,
- init/main.c:init() will run prepare_namespace() to mount the final root
+ init/main.c:kernel_init_freeable() will run prepare_namespace() to mount the final root
and exec one of the predefined init binaries.
Bryan O'Sullivan <bos@serpentine.com>
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 19/62] init: remove mentions of "ramdisk=" command line parameter
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It is already removed
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/arm/boot/dts/samsung/exynos4210-origen.dts | 2 +-
arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts | 2 +-
arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts | 2 +-
arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts | 2 +-
arch/arm/configs/exynos_defconfig | 2 +-
arch/arm/configs/s5pv210_defconfig | 2 +-
drivers/block/Kconfig | 1 -
7 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/arch/arm/boot/dts/samsung/exynos4210-origen.dts b/arch/arm/boot/dts/samsung/exynos4210-origen.dts
index f1927ca15e08..4dcf794bd18b 100644
--- a/arch/arm/boot/dts/samsung/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/samsung/exynos4210-origen.dts
@@ -36,7 +36,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial2:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts b/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
index 18f4f494093b..4cdeddeff3fc 100644
--- a/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
+++ b/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
@@ -30,7 +30,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial1:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts b/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
index c83fb250e664..4b18cc55d6ca 100644
--- a/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
+++ b/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
@@ -27,7 +27,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial1:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts b/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
index bb623726ef1e..4164c7c2a3eb 100644
--- a/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
@@ -27,7 +27,7 @@ memory@40000000 {
};
chosen {
- bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial2:115200n8";
};
diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig
index 6915c766923a..77d3521f55d4 100644
--- a/arch/arm/configs/exynos_defconfig
+++ b/arch/arm/configs/exynos_defconfig
@@ -15,7 +15,7 @@ CONFIG_HIGHMEM=y
CONFIG_SECCOMP=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
+CONFIG_CMDLINE="root=/dev/ram0 rw initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/arch/arm/configs/s5pv210_defconfig b/arch/arm/configs/s5pv210_defconfig
index 02121eec3658..8ec82d9b51e4 100644
--- a/arch/arm/configs/s5pv210_defconfig
+++ b/arch/arm/configs/s5pv210_defconfig
@@ -8,7 +8,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_ARCH_S5PV210=y
CONFIG_VMSPLIT_2G=y
CONFIG_ARM_APPENDED_DTB=y
-CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
+CONFIG_CMDLINE="root=/dev/ram0 rw initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index df38fb364904..8cf06e40f61c 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -229,7 +229,6 @@ config BLK_DEV_RAM
store a copy of a minimal root file system off of a floppy into RAM
during the initial install of Linux.
- Note that the kernel command line option "ramdisk=XX" is now obsolete.
For details, read <file:Documentation/admin-guide/blockdev/ramdisk.rst>.
To compile this driver as a module, choose M here: the
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 20/62] doc: remove Documentation/power/swsusp-dmcrypt.rst
From: Askar Safin @ 2025-09-13 0:37 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It contains obsolete initrd and lilo based instructions
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
Documentation/power/index.rst | 1 -
Documentation/power/swsusp-dmcrypt.rst | 140 ------------------
.../translations/zh_CN/power/index.rst | 1 -
3 files changed, 142 deletions(-)
delete mode 100644 Documentation/power/swsusp-dmcrypt.rst
diff --git a/Documentation/power/index.rst b/Documentation/power/index.rst
index a0f5244fb427..9f1758c92e48 100644
--- a/Documentation/power/index.rst
+++ b/Documentation/power/index.rst
@@ -22,7 +22,6 @@ Power Management
suspend-and-cpuhotplug
suspend-and-interrupts
swsusp-and-swap-files
- swsusp-dmcrypt
swsusp
video
tricks
diff --git a/Documentation/power/swsusp-dmcrypt.rst b/Documentation/power/swsusp-dmcrypt.rst
deleted file mode 100644
index afb29a58fdf8..000000000000
--- a/Documentation/power/swsusp-dmcrypt.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-=======================================
-How to use dm-crypt and swsusp together
-=======================================
-
-Author: Andreas Steinmetz <ast@domdv.de>
-
-
-
-Some prerequisites:
-You know how dm-crypt works. If not, visit the following web page:
-http://www.saout.de/misc/dm-crypt/
-You have read Documentation/power/swsusp.rst and understand it.
-You did read Documentation/filesystems/ramfs-rootfs-initramfs.rst and know how an initrd works.
-You know how to create or how to modify an initrd.
-
-Now your system is properly set up, your disk is encrypted except for
-the swap device(s) and the boot partition which may contain a mini
-system for crypto setup and/or rescue purposes. You may even have
-an initrd that does your current crypto setup already.
-
-At this point you want to encrypt your swap, too. Still you want to
-be able to suspend using swsusp. This, however, means that you
-have to be able to either enter a passphrase or that you read
-the key(s) from an external device like a pcmcia flash disk
-or an usb stick prior to resume. So you need an initrd, that sets
-up dm-crypt and then asks swsusp to resume from the encrypted
-swap device.
-
-The most important thing is that you set up dm-crypt in such
-a way that the swap device you suspend to/resume from has
-always the same major/minor within the initrd as well as
-within your running system. The easiest way to achieve this is
-to always set up this swap device first with dmsetup, so that
-it will always look like the following::
-
- brw------- 1 root root 254, 0 Jul 28 13:37 /dev/mapper/swap0
-
-Now set up your kernel to use /dev/mapper/swap0 as the default
-resume partition, so your kernel .config contains::
-
- CONFIG_PM_STD_PARTITION="/dev/mapper/swap0"
-
-Prepare your boot loader to use the initrd you will create or
-modify. For lilo the simplest setup looks like the following
-lines::
-
- image=/boot/vmlinuz
- initrd=/boot/initrd.gz
- label=linux
- append="root=/dev/ram0 init=/linuxrc rw"
-
-Finally you need to create or modify your initrd. Lets assume
-you create an initrd that reads the required dm-crypt setup
-from a pcmcia flash disk card. The card is formatted with an ext2
-fs which resides on /dev/hde1 when the card is inserted. The
-card contains at least the encrypted swap setup in a file
-named "swapkey". /etc/fstab of your initrd contains something
-like the following::
-
- /dev/hda1 /mnt ext3 ro 0 0
- none /proc proc defaults,noatime,nodiratime 0 0
- none /sys sysfs defaults,noatime,nodiratime 0 0
-
-/dev/hda1 contains an unencrypted mini system that sets up all
-of your crypto devices, again by reading the setup from the
-pcmcia flash disk. What follows now is a /linuxrc for your
-initrd that allows you to resume from encrypted swap and that
-continues boot with your mini system on /dev/hda1 if resume
-does not happen::
-
- #!/bin/sh
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- mount /proc
- mount /sys
- mapped=0
- noresume=`grep -c noresume /proc/cmdline`
- if [ "$*" != "" ]
- then
- noresume=1
- fi
- dmesg -n 1
- /sbin/cardmgr -q
- for i in 1 2 3 4 5 6 7 8 9 0
- do
- if [ -f /proc/ide/hde/media ]
- then
- usleep 500000
- mount -t ext2 -o ro /dev/hde1 /mnt
- if [ -f /mnt/swapkey ]
- then
- dmsetup create swap0 /mnt/swapkey > /dev/null 2>&1 && mapped=1
- fi
- umount /mnt
- break
- fi
- usleep 500000
- done
- killproc /sbin/cardmgr
- dmesg -n 6
- if [ $mapped = 1 ]
- then
- if [ $noresume != 0 ]
- then
- mkswap /dev/mapper/swap0 > /dev/null 2>&1
- fi
- echo 254:0 > /sys/power/resume
- dmsetup remove swap0
- fi
- umount /sys
- mount /mnt
- umount /proc
- cd /mnt
- pivot_root . mnt
- mount /proc
- umount -l /mnt
- umount /proc
- exec chroot . /sbin/init $* < dev/console > dev/console 2>&1
-
-Please don't mind the weird loop above, busybox's msh doesn't know
-the let statement. Now, what is happening in the script?
-First we have to decide if we want to try to resume, or not.
-We will not resume if booting with "noresume" or any parameters
-for init like "single" or "emergency" as boot parameters.
-
-Then we need to set up dmcrypt with the setup data from the
-pcmcia flash disk. If this succeeds we need to reset the swap
-device if we don't want to resume. The line "echo 254:0 > /sys/power/resume"
-then attempts to resume from the first device mapper device.
-Note that it is important to set the device in /sys/power/resume,
-regardless if resuming or not, otherwise later suspend will fail.
-If resume starts, script execution terminates here.
-
-Otherwise we just remove the encrypted swap device and leave it to the
-mini system on /dev/hda1 to set the whole crypto up (it is up to
-you to modify this to your taste).
-
-What then follows is the well known process to change the root
-file system and continue booting from there. I prefer to unmount
-the initrd prior to continue booting but it is up to you to modify
-this.
diff --git a/Documentation/translations/zh_CN/power/index.rst b/Documentation/translations/zh_CN/power/index.rst
index bc54983ba515..4ee880e65107 100644
--- a/Documentation/translations/zh_CN/power/index.rst
+++ b/Documentation/translations/zh_CN/power/index.rst
@@ -32,7 +32,6 @@ TODOList:
* suspend-and-cpuhotplug
* suspend-and-interrupts
* swsusp-and-swap-files
- * swsusp-dmcrypt
* swsusp
* video
* tricks
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 21/62] init: remove all mentions of root=/dev/ram*
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Initrd support is removed, so root=/dev/ram* is never correct
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
Documentation/admin-guide/kernel-parameters.txt | 3 +--
Documentation/arch/m68k/kernel-options.rst | 9 ++-------
arch/arm/boot/dts/arm/integratorap.dts | 2 +-
arch/arm/boot/dts/arm/integratorcp.dts | 2 +-
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-cmm.dts | 2 +-
.../boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dts | 2 +-
.../arm/boot/dts/aspeed/aspeed-bmc-facebook-minipack.dts | 2 +-
.../arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge100.dts | 2 +-
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge40.dts | 2 +-
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yamp.dts | 2 +-
.../boot/dts/aspeed/ast2600-facebook-netbmc-common.dtsi | 2 +-
arch/arm/boot/dts/hisilicon/hi3620-hi4511.dts | 2 +-
.../boot/dts/intel/ixp/intel-ixp42x-welltech-epbx100.dts | 2 +-
arch/arm/boot/dts/nspire/nspire-classic.dtsi | 2 +-
arch/arm/boot/dts/nspire/nspire-cx.dts | 2 +-
arch/arm/boot/dts/samsung/exynos4210-origen.dts | 2 +-
arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts | 2 +-
arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts | 2 +-
arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts | 2 +-
arch/arm/boot/dts/st/ste-nomadik-nhk15.dts | 2 +-
arch/arm/boot/dts/st/ste-nomadik-s8815.dts | 2 +-
arch/arm/boot/dts/st/stm32429i-eval.dts | 2 +-
arch/arm/boot/dts/st/stm32746g-eval.dts | 2 +-
arch/arm/boot/dts/st/stm32f429-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32f469-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32f746-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32f769-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32h743i-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32h743i-eval.dts | 2 +-
arch/arm/boot/dts/st/stm32h747i-disco.dts | 2 +-
arch/arm/boot/dts/st/stm32h750i-art-pi.dts | 2 +-
arch/arm/configs/assabet_defconfig | 2 +-
arch/arm/configs/at91_dt_defconfig | 2 +-
arch/arm/configs/exynos_defconfig | 2 +-
arch/arm/configs/lpc32xx_defconfig | 2 +-
arch/arm/configs/pxa_defconfig | 2 +-
arch/arm/configs/s3c6400_defconfig | 2 +-
arch/arm/configs/s5pv210_defconfig | 2 +-
arch/arm/configs/sama5_defconfig | 2 +-
arch/arm/configs/u8500_defconfig | 2 +-
arch/parisc/defpalo.conf | 2 +-
arch/s390/boot/ipl_parm.c | 2 +-
arch/xtensa/Kconfig | 2 +-
arch/xtensa/boot/dts/csp.dts | 2 +-
44 files changed, 45 insertions(+), 51 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index e862a7b1d2ec..a259f2bdba0f 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -6407,8 +6407,7 @@
Usually this is a block device specifier of some kind,
see the early_lookup_bdev comment in
block/early-lookup.c for details.
- Alternatively this can be "ram" for the legacy initial
- ramdisk, "nfs" and "cifs" for root on a network file
+ Alternatively this can be "nfs" and "cifs" for root on a network file
system, or "mtd" and "ubi" for mounting from raw flash.
rootdelay= [KNL] Delay (in seconds) to pause before attempting to
diff --git a/Documentation/arch/m68k/kernel-options.rst b/Documentation/arch/m68k/kernel-options.rst
index f6469ebeb2c7..a508ee8efa8b 100644
--- a/Documentation/arch/m68k/kernel-options.rst
+++ b/Documentation/arch/m68k/kernel-options.rst
@@ -73,7 +73,6 @@ hardcoded name to number mappings. The name must always be a
combination of two or three letters, followed by a decimal number.
Valid names are::
- /dev/ram: -> 0x0100 (initial ramdisk)
/dev/hda: -> 0x0300 (first IDE disk)
/dev/hdb: -> 0x0340 (second IDE disk)
/dev/sda: -> 0x0800 (first SCSI disk)
@@ -86,12 +85,8 @@ Valid names are::
The name must be followed by a decimal number, that stands for the
partition number. Internally, the value of the number is just
added to the device number mentioned in the table above. The
-exceptions are /dev/ram and /dev/fd, where /dev/ram refers to an
-initial ramdisk loaded by your bootstrap program (please consult the
-instructions for your bootstrap program to find out how to load an
-initial ramdisk). As of kernel version 2.0.18 you must specify
-/dev/ram as the root device if you want to boot from an initial
-ramdisk. For the floppy devices, /dev/fd, the number stands for the
+exception is /dev/fd.
+For the floppy devices, /dev/fd, the number stands for the
floppy drive number (there are no partitions on floppy disks). I.e.,
/dev/fd0 stands for the first drive, /dev/fd1 for the second, and so
on. Since the number is just added, you can also force the disk format
diff --git a/arch/arm/boot/dts/arm/integratorap.dts b/arch/arm/boot/dts/arm/integratorap.dts
index 9b6a1dbaf265..2e43a8291d40 100644
--- a/arch/arm/boot/dts/arm/integratorap.dts
+++ b/arch/arm/boot/dts/arm/integratorap.dts
@@ -53,7 +53,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk";
+ bootargs = "console=ttyAM0,38400n8 earlyprintk";
};
/* 24 MHz chrystal on the Integrator/AP development board */
diff --git a/arch/arm/boot/dts/arm/integratorcp.dts b/arch/arm/boot/dts/arm/integratorcp.dts
index 8ad1a8957ace..2ac140741752 100644
--- a/arch/arm/boot/dts/arm/integratorcp.dts
+++ b/arch/arm/boot/dts/arm/integratorcp.dts
@@ -11,7 +11,7 @@ / {
compatible = "arm,integrator-cp";
chosen {
- bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk";
+ bootargs = "console=ttyAMA0,38400n8 earlyprintk";
};
cpus {
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-cmm.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-cmm.dts
index 24153868cc00..f4ae167e89f0 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-cmm.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-cmm.dts
@@ -280,7 +280,7 @@ aliases {
chosen {
stdout-path = &uart1;
- bootargs = "console=ttyS1,9600n8 root=/dev/ram rw earlycon";
+ bootargs = "console=ttyS1,9600n8 rw earlycon";
};
ast-adc-hwmon {
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dts
index 60e875ac2461..d51ee3aaa461 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-galaxy100.dts
@@ -10,7 +10,7 @@ / {
chosen {
stdout-path = &uart5;
- bootargs = "console=ttyS0,9600n8 root=/dev/ram rw";
+ bootargs = "console=ttyS0,9600n8 rw";
};
ast-adc-hwmon {
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minipack.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minipack.dts
index aafd1042b6e5..4233d0d857b8 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minipack.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minipack.dts
@@ -230,7 +230,7 @@ aliases {
chosen {
stdout-path = &uart1;
- bootargs = "debug console=ttyS1,9600n8 root=/dev/ram rw";
+ bootargs = "debug console=ttyS1,9600n8 rw";
};
};
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge100.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge100.dts
index 97cd11c3d9a5..23f9d1c690f8 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge100.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge100.dts
@@ -10,7 +10,7 @@ / {
chosen {
stdout-path = &uart3;
- bootargs = "console=ttyS2,9600n8 root=/dev/ram rw";
+ bootargs = "console=ttyS2,9600n8 rw";
};
ast-adc-hwmon {
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge40.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge40.dts
index 6624855d8ebd..e9b1b51f9f7a 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge40.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-wedge40.dts
@@ -10,7 +10,7 @@ / {
chosen {
stdout-path = &uart3;
- bootargs = "console=ttyS2,9600n8 root=/dev/ram rw";
+ bootargs = "console=ttyS2,9600n8 rw";
};
ast-adc-hwmon {
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yamp.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yamp.dts
index 98fe0d6c8188..578ca0dc9647 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yamp.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yamp.dts
@@ -21,7 +21,7 @@ aliases {
chosen {
stdout-path = &uart5;
- bootargs = "console=ttyS0,9600n8 root=/dev/ram rw";
+ bootargs = "console=ttyS0,9600n8 rw";
};
};
diff --git a/arch/arm/boot/dts/aspeed/ast2600-facebook-netbmc-common.dtsi b/arch/arm/boot/dts/aspeed/ast2600-facebook-netbmc-common.dtsi
index 00e5887c926f..3dbf0cc70f48 100644
--- a/arch/arm/boot/dts/aspeed/ast2600-facebook-netbmc-common.dtsi
+++ b/arch/arm/boot/dts/aspeed/ast2600-facebook-netbmc-common.dtsi
@@ -12,7 +12,7 @@ aliases {
};
chosen {
- bootargs = "console=ttyS0,9600n8 root=/dev/ram rw vmalloc=640M";
+ bootargs = "console=ttyS0,9600n8 rw vmalloc=640M";
};
memory@80000000 {
diff --git a/arch/arm/boot/dts/hisilicon/hi3620-hi4511.dts b/arch/arm/boot/dts/hisilicon/hi3620-hi4511.dts
index f1c816a1d7cf..bbd62c6ad280 100644
--- a/arch/arm/boot/dts/hisilicon/hi3620-hi4511.dts
+++ b/arch/arm/boot/dts/hisilicon/hi3620-hi4511.dts
@@ -13,7 +13,7 @@ / {
compatible = "hisilicon,hi3620-hi4511";
chosen {
- bootargs = "root=/dev/ram0";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-welltech-epbx100.dts b/arch/arm/boot/dts/intel/ixp/intel-ixp42x-welltech-epbx100.dts
index c550c421b659..96105137a364 100644
--- a/arch/arm/boot/dts/intel/ixp/intel-ixp42x-welltech-epbx100.dts
+++ b/arch/arm/boot/dts/intel/ixp/intel-ixp42x-welltech-epbx100.dts
@@ -20,7 +20,7 @@ memory@0 {
};
chosen {
- bootargs = "console=ttyS0,115200n8 root=/dev/ram0 initrd=0x00800000,9M";
+ bootargs = "console=ttyS0,115200n8 initrd=0x00800000,9M";
stdout-path = "uart0:115200n8";
};
diff --git a/arch/arm/boot/dts/nspire/nspire-classic.dtsi b/arch/arm/boot/dts/nspire/nspire-classic.dtsi
index 0ee53d3ecd54..224cf5921e26 100644
--- a/arch/arm/boot/dts/nspire/nspire-classic.dtsi
+++ b/arch/arm/boot/dts/nspire/nspire-classic.dtsi
@@ -81,6 +81,6 @@ panel_in: endpoint {
};
};
chosen {
- bootargs = "debug earlyprintk console=tty0 console=ttyS0,115200n8 root=/dev/ram0";
+ bootargs = "debug earlyprintk console=tty0 console=ttyS0,115200n8";
};
};
diff --git a/arch/arm/boot/dts/nspire/nspire-cx.dts b/arch/arm/boot/dts/nspire/nspire-cx.dts
index debeff0ec010..08155d15cca9 100644
--- a/arch/arm/boot/dts/nspire/nspire-cx.dts
+++ b/arch/arm/boot/dts/nspire/nspire-cx.dts
@@ -165,6 +165,6 @@ panel_in: endpoint {
};
};
chosen {
- bootargs = "debug earlyprintk console=tty0 console=ttyAMA0,115200n8 root=/dev/ram0";
+ bootargs = "debug earlyprintk console=tty0 console=ttyAMA0,115200n8";
};
};
diff --git a/arch/arm/boot/dts/samsung/exynos4210-origen.dts b/arch/arm/boot/dts/samsung/exynos4210-origen.dts
index 4dcf794bd18b..b714073143e7 100644
--- a/arch/arm/boot/dts/samsung/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/samsung/exynos4210-origen.dts
@@ -36,7 +36,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial2:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts b/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
index 4cdeddeff3fc..2a3c2a4c0e90 100644
--- a/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
+++ b/arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
@@ -30,7 +30,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial1:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts b/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
index 4b18cc55d6ca..920af4f91c75 100644
--- a/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
+++ b/arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
@@ -27,7 +27,7 @@ aliases {
};
chosen {
- bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial1:115200n8";
};
diff --git a/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts b/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
index 4164c7c2a3eb..e5cfff1ffad0 100644
--- a/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/samsung/exynos5250-smdk5250.dts
@@ -27,7 +27,7 @@ memory@40000000 {
};
chosen {
- bootargs = "root=/dev/ram0 rw initrd=0x41000000,8M init=/linuxrc";
+ bootargs = "rw initrd=0x41000000,8M init=/linuxrc";
stdout-path = "serial2:115200n8";
};
diff --git a/arch/arm/boot/dts/st/ste-nomadik-nhk15.dts b/arch/arm/boot/dts/st/ste-nomadik-nhk15.dts
index cdff33063d6f..8a22425cdb78 100644
--- a/arch/arm/boot/dts/st/ste-nomadik-nhk15.dts
+++ b/arch/arm/boot/dts/st/ste-nomadik-nhk15.dts
@@ -13,7 +13,7 @@ / {
compatible = "st,nomadik-nhk-15";
chosen {
- bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
+ bootargs = "console=ttyAMA1,115200n8 earlyprintk";
};
aliases {
diff --git a/arch/arm/boot/dts/st/ste-nomadik-s8815.dts b/arch/arm/boot/dts/st/ste-nomadik-s8815.dts
index c905c2643a12..7f418d8a2370 100644
--- a/arch/arm/boot/dts/st/ste-nomadik-s8815.dts
+++ b/arch/arm/boot/dts/st/ste-nomadik-s8815.dts
@@ -13,7 +13,7 @@ / {
compatible = "calaosystems,usb-s8815";
chosen {
- bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
+ bootargs = "console=ttyAMA1,115200n8 earlyprintk";
};
aliases {
diff --git a/arch/arm/boot/dts/st/stm32429i-eval.dts b/arch/arm/boot/dts/st/stm32429i-eval.dts
index afa417b34b25..7e8834af20c6 100644
--- a/arch/arm/boot/dts/st/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/st/stm32429i-eval.dts
@@ -57,7 +57,7 @@ / {
compatible = "st,stm32429i-eval", "st,stm32f429";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32746g-eval.dts b/arch/arm/boot/dts/st/stm32746g-eval.dts
index e9ac37b6eca0..43a52b26fdaa 100644
--- a/arch/arm/boot/dts/st/stm32746g-eval.dts
+++ b/arch/arm/boot/dts/st/stm32746g-eval.dts
@@ -51,7 +51,7 @@ / {
compatible = "st,stm32746g-eval", "st,stm32f746";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32f429-disco.dts b/arch/arm/boot/dts/st/stm32f429-disco.dts
index a3cb4aabdd5a..68d822d79988 100644
--- a/arch/arm/boot/dts/st/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/st/stm32f429-disco.dts
@@ -57,7 +57,7 @@ / {
compatible = "st,stm32f429i-disco", "st,stm32f429";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32f469-disco.dts b/arch/arm/boot/dts/st/stm32f469-disco.dts
index 8a4f8ddd083d..31b4abbc608d 100644
--- a/arch/arm/boot/dts/st/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/st/stm32f469-disco.dts
@@ -56,7 +56,7 @@ / {
compatible = "st,stm32f469i-disco", "st,stm32f469";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32f746-disco.dts b/arch/arm/boot/dts/st/stm32f746-disco.dts
index b57dbdce2f40..3cb04547228e 100644
--- a/arch/arm/boot/dts/st/stm32f746-disco.dts
+++ b/arch/arm/boot/dts/st/stm32f746-disco.dts
@@ -52,7 +52,7 @@ / {
compatible = "st,stm32f746-disco", "st,stm32f746";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32f769-disco.dts b/arch/arm/boot/dts/st/stm32f769-disco.dts
index 535cfdc4681c..13f96ee0b3de 100644
--- a/arch/arm/boot/dts/st/stm32f769-disco.dts
+++ b/arch/arm/boot/dts/st/stm32f769-disco.dts
@@ -51,7 +51,7 @@ / {
compatible = "st,stm32f769-disco", "st,stm32f769";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32h743i-disco.dts b/arch/arm/boot/dts/st/stm32h743i-disco.dts
index 8451a54a9a08..8bdb24fcf0c7 100644
--- a/arch/arm/boot/dts/st/stm32h743i-disco.dts
+++ b/arch/arm/boot/dts/st/stm32h743i-disco.dts
@@ -49,7 +49,7 @@ / {
compatible = "st,stm32h743i-disco", "st,stm32h743";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32h743i-eval.dts b/arch/arm/boot/dts/st/stm32h743i-eval.dts
index 4b0ced27b80e..c3de36d94acf 100644
--- a/arch/arm/boot/dts/st/stm32h743i-eval.dts
+++ b/arch/arm/boot/dts/st/stm32h743i-eval.dts
@@ -49,7 +49,7 @@ / {
compatible = "st,stm32h743i-eval", "st,stm32h743";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32h747i-disco.dts b/arch/arm/boot/dts/st/stm32h747i-disco.dts
index 99f0255dae8e..a57341e2d95c 100644
--- a/arch/arm/boot/dts/st/stm32h747i-disco.dts
+++ b/arch/arm/boot/dts/st/stm32h747i-disco.dts
@@ -14,7 +14,7 @@ / {
compatible = "st,stm32h747i-disco", "st,stm32h747";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:115200n8";
};
diff --git a/arch/arm/boot/dts/st/stm32h750i-art-pi.dts b/arch/arm/boot/dts/st/stm32h750i-art-pi.dts
index 56c53e262da7..b4bd8315464c 100644
--- a/arch/arm/boot/dts/st/stm32h750i-art-pi.dts
+++ b/arch/arm/boot/dts/st/stm32h750i-art-pi.dts
@@ -54,7 +54,7 @@ / {
compatible = "st,stm32h750i-art-pi", "st,stm32h750";
chosen {
- bootargs = "root=/dev/ram";
+ bootargs = "";
stdout-path = "serial0:2000000n8";
};
diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig
index 07ab9eaac4af..56fce6c08945 100644
--- a/arch/arm/configs/assabet_defconfig
+++ b/arch/arm/configs/assabet_defconfig
@@ -5,7 +5,7 @@ CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
-CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
+CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_MODULES=y
diff --git a/arch/arm/configs/at91_dt_defconfig b/arch/arm/configs/at91_dt_defconfig
index ff13e1ecf4bb..b53c7906d317 100644
--- a/arch/arm/configs/at91_dt_defconfig
+++ b/arch/arm/configs/at91_dt_defconfig
@@ -23,7 +23,7 @@ CONFIG_UACCESS_WITH_MEMCPY=y
# CONFIG_ATAGS is not set
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw"
+CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 rw"
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig
index 77d3521f55d4..02a903816baa 100644
--- a/arch/arm/configs/exynos_defconfig
+++ b/arch/arm/configs/exynos_defconfig
@@ -15,7 +15,7 @@ CONFIG_HIGHMEM=y
CONFIG_SECCOMP=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="root=/dev/ram0 rw initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
+CONFIG_CMDLINE="rw initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig
index 9afccd76446b..a98d1125b9aa 100644
--- a/arch/arm/configs/lpc32xx_defconfig
+++ b/arch/arm/configs/lpc32xx_defconfig
@@ -13,7 +13,7 @@ CONFIG_ARCH_LPC32XX=y
CONFIG_AEABI=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0"
+CONFIG_CMDLINE="console=ttyS0,115200n81"
CONFIG_CPU_IDLE=y
CONFIG_VFP=y
CONFIG_JUMP_LABEL=y
diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig
index 1a80602c1284..0c4b9389d4d6 100644
--- a/arch/arm/configs/pxa_defconfig
+++ b/arch/arm/configs/pxa_defconfig
@@ -22,7 +22,7 @@ CONFIG_MACH_AKITA=y
CONFIG_MACH_BORZOI=y
CONFIG_AEABI=y
CONFIG_ARCH_FORCE_MAX_ORDER=8
-CONFIG_CMDLINE="root=/dev/ram0 ro"
+CONFIG_CMDLINE="ro"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index 23635d5b9322..a5018ce274ec 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -4,7 +4,7 @@ CONFIG_ARCH_MULTI_V6=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_S3C64XX=y
CONFIG_MACH_WLF_CRAGG_6410=y
-CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M"
+CONFIG_CMDLINE="console=ttySAC0,115200 init=/linuxrc initrd=0x51000000,6M"
CONFIG_VFP=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
diff --git a/arch/arm/configs/s5pv210_defconfig b/arch/arm/configs/s5pv210_defconfig
index 8ec82d9b51e4..485dd5174c62 100644
--- a/arch/arm/configs/s5pv210_defconfig
+++ b/arch/arm/configs/s5pv210_defconfig
@@ -8,7 +8,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_ARCH_S5PV210=y
CONFIG_VMSPLIT_2G=y
CONFIG_ARM_APPENDED_DTB=y
-CONFIG_CMDLINE="root=/dev/ram0 rw initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
+CONFIG_CMDLINE="rw initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/arch/arm/configs/sama5_defconfig b/arch/arm/configs/sama5_defconfig
index 2cad045e1d8d..0463ff84c06c 100644
--- a/arch/arm/configs/sama5_defconfig
+++ b/arch/arm/configs/sama5_defconfig
@@ -14,7 +14,7 @@ CONFIG_SOC_SAMA5D4=y
# CONFIG_ATMEL_CLOCKSOURCE_PIT is not set
CONFIG_UACCESS_WITH_MEMCPY=y
# CONFIG_ATAGS is not set
-CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw"
+CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 rw"
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_KERNEL_MODE_NEON=y
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig
index 0f55815eecb3..510c760b0bc7 100644
--- a/arch/arm/configs/u8500_defconfig
+++ b/arch/arm/configs/u8500_defconfig
@@ -9,7 +9,7 @@ CONFIG_NR_CPUS=2
CONFIG_HIGHMEM=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8"
+CONFIG_CMDLINE="console=ttyAMA2,115200n8"
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPUFREQ_DT=y
diff --git a/arch/parisc/defpalo.conf b/arch/parisc/defpalo.conf
index 208ff3b41487..86c9a132cb92 100644
--- a/arch/parisc/defpalo.conf
+++ b/arch/parisc/defpalo.conf
@@ -12,7 +12,7 @@
# If you want a root ramdisk, use the next 2 lines
# (Edit the ramdisk image name!!!!)
--ramdisk=ram-disk-image-file
---commandline=0/vmlinuz HOME=/ root=/dev/ram initrd=0/ramdisk panic_timeout=60 panic=-1
+--commandline=0/vmlinuz HOME=/ initrd=0/ramdisk panic_timeout=60 panic=-1
# If you want NFS root, use the following command line (Edit the HOSTNAME!!!)
#--commandline=0/vmlinuz HOME=/ root=/dev/nfs nfsroot=HOSTNAME ip=bootp
diff --git a/arch/s390/boot/ipl_parm.c b/arch/s390/boot/ipl_parm.c
index f584d7da29cb..47fc2a7ed551 100644
--- a/arch/s390/boot/ipl_parm.c
+++ b/arch/s390/boot/ipl_parm.c
@@ -18,7 +18,7 @@
struct parmarea parmarea __section(".parmarea") = {
.kernel_version = (unsigned long)kernel_version,
.max_command_line_size = COMMAND_LINE_SIZE,
- .command_line = "root=/dev/ram0 ro",
+ .command_line = "ro",
};
char __bootdata(early_command_line)[COMMAND_LINE_SIZE];
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index f2f9cd9cde50..e8e579160c6b 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -448,7 +448,7 @@ config CMDLINE_BOOL
config CMDLINE
string "Initial kernel command string"
depends on CMDLINE_BOOL
- default "console=ttyS0,38400 root=/dev/ram"
+ default "console=ttyS0,38400"
help
On some architectures (EBSA110 and CATS), there is currently no way
for the boot loader to pass arguments to the kernel. For these
diff --git a/arch/xtensa/boot/dts/csp.dts b/arch/xtensa/boot/dts/csp.dts
index 885495460f7e..c7e07dd0d7d0 100644
--- a/arch/xtensa/boot/dts/csp.dts
+++ b/arch/xtensa/boot/dts/csp.dts
@@ -8,7 +8,7 @@ / {
interrupt-parent = <&pic>;
chosen {
- bootargs = "earlycon=cdns,0xfd000000,115200 console=tty0 console=ttyPS0,115200 root=/dev/ram0 rw earlyprintk xilinx_uartps.rx_trigger_level=32 loglevel=8 nohz=off ignore_loglevel";
+ bootargs = "earlycon=cdns,0xfd000000,115200 console=tty0 console=ttyPS0,115200 rw earlyprintk xilinx_uartps.rx_trigger_level=32 loglevel=8 nohz=off ignore_loglevel";
};
memory@0 {
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 22/62] doc: remove obsolete mentions of pivot_root
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
They refer to initrd, which was removed in previous commits
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
Documentation/admin-guide/device-mapper/dm-init.rst | 4 ++--
Documentation/arch/arm/ixp4xx.rst | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/admin-guide/device-mapper/dm-init.rst b/Documentation/admin-guide/device-mapper/dm-init.rst
index 981d6a907699..586bb38d716b 100644
--- a/Documentation/admin-guide/device-mapper/dm-init.rst
+++ b/Documentation/admin-guide/device-mapper/dm-init.rst
@@ -5,8 +5,8 @@ Early creation of mapped devices
It is possible to configure a device-mapper device to act as the root device for
your system in two ways.
-The first is to build an initial ramdisk which boots to a minimal userspace
-which configures the device, then pivot_root(8) in to it.
+The first is to build initramfs which boots to a minimal userspace
+which configures the device, then switches to it.
The second is to create one or more device-mappers using the module parameter
"dm-mod.create=" through the kernel boot command line argument.
diff --git a/Documentation/arch/arm/ixp4xx.rst b/Documentation/arch/arm/ixp4xx.rst
index 17aafc610908..ac9cb28776c7 100644
--- a/Documentation/arch/arm/ixp4xx.rst
+++ b/Documentation/arch/arm/ixp4xx.rst
@@ -137,8 +137,8 @@ Intel IXDPG425 Development Platform
added. One issue with this board is that the mini-PCI slots only
have the 3.3v line connected, so you can't use a PCI to mini-PCI
adapter with an E100 card. So to NFS root you need to use either
- the CSR or a WiFi card and a ramdisk that BOOTPs and then does
- a pivot_root to NFS.
+ the CSR or a WiFi card and initramfs that BOOTPs and then switches
+ to NFS.
Motorola PrPMC1100 Processor Mezanine Card
http://www.fountainsys.com
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 23/62] init: rename __initramfs_{start,size} to __builtin_initramfs_{start,size}
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Rename __initramfs_start to __builtin_initramfs_start and
__initramfs_size to __builtin_initramfs_size .
This is more clear
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/x86/tools/relocs.c | 2 +-
drivers/acpi/tables.c | 4 ++--
include/asm-generic/vmlinux.lds.h | 6 +++---
include/linux/initrd.h | 4 ++--
init/initramfs.c | 4 +---
usr/initramfs_data.S | 4 ++--
6 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index 5778bc498415..4b4e556f1b52 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -87,7 +87,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
"__(start|stop)_notes|"
"__end_rodata|"
"__end_rodata_aligned|"
- "__initramfs_start|"
+ "__builtin_initramfs_start|"
"(jiffies|jiffies_64)|"
#if ELF_BITS == 64
"__end_rodata_hpage_align|"
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index fa9bb8c8ce95..3160cb7dca00 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -429,8 +429,8 @@ void __init acpi_table_upgrade(void)
struct cpio_data file;
if (IS_ENABLED(CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD)) {
- data = __initramfs_start;
- size = __initramfs_size;
+ data = __builtin_initramfs_start;
+ size = __builtin_initramfs_size;
} else {
data = (void *)initrd_start;
size = initrd_end - initrd_start;
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index ae2d2359b79e..a6bd2ff46f7e 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -46,8 +46,8 @@
* [_sdata, _edata] is the data section
*
* Some of the included output section have their own set of constants.
- * Examples are: [__initramfs_start, __initramfs_end] for initramfs and
- * [__nosave_begin, __nosave_end] for the nosave data
+ * Examples are: [__builtin_initramfs_start, __builtin_initramfs_start + __builtin_initramfs_size]
+ * for initramfs and [__nosave_begin, __nosave_end] for the nosave data
*/
#include <asm-generic/codetag.lds.h>
@@ -969,7 +969,7 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPELLER_CLANG)
#ifdef CONFIG_BLK_DEV_INITRD
#define INIT_RAM_FS \
. = ALIGN(4); \
- __initramfs_start = .; \
+ __builtin_initramfs_start = .; \
KEEP(*(.init.ramfs)) \
. = ALIGN(8); \
KEEP(*(.init.ramfs.info))
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index cc389ef1a738..e49c7166dbb3 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -21,8 +21,8 @@ static inline void wait_for_initramfs(void) {}
extern phys_addr_t phys_initrd_start;
extern unsigned long phys_initrd_size;
-extern char __initramfs_start[];
-extern unsigned long __initramfs_size;
+extern char __builtin_initramfs_start[];
+extern unsigned long __builtin_initramfs_size;
void console_on_rootfs(void);
diff --git a/init/initramfs.c b/init/initramfs.c
index 850cb0de873e..2866d7a0afd7 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -597,8 +597,6 @@ static int __init initramfs_async_setup(char *str)
}
__setup("initramfs_async=", initramfs_async_setup);
-extern char __initramfs_start[];
-extern unsigned long __initramfs_size;
#include <linux/initrd.h>
#include <linux/kexec.h>
@@ -695,7 +693,7 @@ static inline bool kexec_free_initrd(void)
static void __init do_populate_rootfs(void *unused, async_cookie_t cookie)
{
/* Load the built in initramfs */
- char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
+ char *err = unpack_to_rootfs(__builtin_initramfs_start, __builtin_initramfs_size);
if (err)
panic_show_mem("%s", err); /* Failed to decompress INTERNAL initramfs */
diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
index cd67edc38797..64ca648a80e2 100644
--- a/usr/initramfs_data.S
+++ b/usr/initramfs_data.S
@@ -27,8 +27,8 @@ __irf_start:
.incbin "usr/initramfs_inc_data"
__irf_end:
.section .init.ramfs.info,"a"
-.globl __initramfs_size
-__initramfs_size:
+.globl __builtin_initramfs_size
+__builtin_initramfs_size:
#ifdef CONFIG_64BIT
.quad __irf_end - __irf_start
#else
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 24/62] init: remove wrong comment
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This comment is wrong. free_initrd_mem may be called
with crashk_end and initrd_end as arguments
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
include/linux/initrd.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index e49c7166dbb3..4080ba82d4c9 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -6,7 +6,6 @@
/* 1 if it is not an error if initrd_start < memory_start */
extern int initrd_below_start_ok;
-/* free_initrd_mem always gets called with the next two as arguments.. */
extern unsigned long initrd_start, initrd_end;
extern void free_initrd_mem(unsigned long, unsigned long);
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 25/62] init: rename phys_initrd_{start,size} to phys_external_initramfs_{start,size}
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Rename phys_initrd_start to phys_external_initramfs_start and
phys_initrd_size to phys_external_initramfs_size.
They refer to initramfs, not to initrd
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/arc/mm/init.c | 8 ++++----
arch/arm/mm/init.c | 8 ++++----
arch/arm64/mm/init.c | 15 ++++++++-------
arch/x86/kernel/setup.c | 4 ++--
drivers/firmware/efi/efi.c | 6 +++---
drivers/of/fdt.c | 8 ++++----
include/linux/initrd.h | 4 ++--
init/do_mounts_initrd.c | 8 ++++----
init/initramfs.c | 10 +++++-----
9 files changed, 36 insertions(+), 35 deletions(-)
diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c
index a73cc94f806e..eb8a616a63c6 100644
--- a/arch/arc/mm/init.c
+++ b/arch/arc/mm/init.c
@@ -110,10 +110,10 @@ void __init setup_arch_memory(void)
__pa(_end) - CONFIG_LINUX_LINK_BASE);
#ifdef CONFIG_BLK_DEV_INITRD
- if (phys_initrd_size) {
- memblock_reserve(phys_initrd_start, phys_initrd_size);
- initrd_start = (unsigned long)__va(phys_initrd_start);
- initrd_end = initrd_start + phys_initrd_size;
+ if (phys_external_initramfs_size) {
+ memblock_reserve(phys_external_initramfs_start, phys_external_initramfs_size);
+ initrd_start = (unsigned long)__va(phys_external_initramfs_start);
+ initrd_end = initrd_start + phys_external_initramfs_size;
}
#endif
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 54bdca025c9f..93f8010b9115 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -55,8 +55,8 @@ static int __init parse_tag_initrd(const struct tag *tag)
{
pr_warn("ATAG_INITRD is deprecated; "
"please update your bootloader.\n");
- phys_initrd_start = __virt_to_phys(tag->u.initrd.start);
- phys_initrd_size = tag->u.initrd.size;
+ phys_external_initramfs_start = __virt_to_phys(tag->u.initrd.start);
+ phys_external_initramfs_size = tag->u.initrd.size;
return 0;
}
@@ -64,8 +64,8 @@ __tagtable(ATAG_INITRD, parse_tag_initrd);
static int __init parse_tag_initrd2(const struct tag *tag)
{
- phys_initrd_start = tag->u.initrd.start;
- phys_initrd_size = tag->u.initrd.size;
+ phys_external_initramfs_start = tag->u.initrd.start;
+ phys_external_initramfs_size = tag->u.initrd.size;
return 0;
}
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index ea84a61ed508..da517edcf824 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -246,14 +246,15 @@ void __init arm64_memblock_init(void)
memblock_add(__pa_symbol(_text), (u64)(_end - _text));
}
- if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {
+ if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_external_initramfs_size) {
/*
* Add back the memory we just removed if it results in the
* initrd to become inaccessible via the linear mapping.
* Otherwise, this is a no-op
*/
- u64 base = phys_initrd_start & PAGE_MASK;
- u64 size = PAGE_ALIGN(phys_initrd_start + phys_initrd_size) - base;
+ u64 base = phys_external_initramfs_start & PAGE_MASK;
+ u64 size = PAGE_ALIGN(phys_external_initramfs_start +
+ phys_external_initramfs_size) - base;
/*
* We can only add back the initrd memory if we don't end up
@@ -267,7 +268,7 @@ void __init arm64_memblock_init(void)
base + size > memblock_start_of_DRAM() +
linear_region_size,
"initrd not fully accessible via the linear mapping -- please check your bootloader ...\n")) {
- phys_initrd_size = 0;
+ phys_external_initramfs_size = 0;
} else {
memblock_add(base, size);
memblock_clear_nomap(base, size);
@@ -280,10 +281,10 @@ void __init arm64_memblock_init(void)
* pagetables with memblock.
*/
memblock_reserve(__pa_symbol(_stext), _end - _stext);
- if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {
+ if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_external_initramfs_size) {
/* the generic initrd code expects virtual addresses */
- initrd_start = __phys_to_virt(phys_initrd_start);
- initrd_end = initrd_start + phys_initrd_size;
+ initrd_start = __phys_to_virt(phys_external_initramfs_start);
+ initrd_end = initrd_start + phys_external_initramfs_size;
}
early_init_fdt_scan_reserved_mem();
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 797c3c9fc75e..e727c7a7f648 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -297,7 +297,7 @@ static u64 __init get_ramdisk_image(void)
ramdisk_image |= (u64)boot_params.ext_ramdisk_image << 32;
if (ramdisk_image == 0)
- ramdisk_image = phys_initrd_start;
+ ramdisk_image = phys_external_initramfs_start;
return ramdisk_image;
}
@@ -308,7 +308,7 @@ static u64 __init get_ramdisk_size(void)
ramdisk_size |= (u64)boot_params.ext_ramdisk_size << 32;
if (ramdisk_size == 0)
- ramdisk_size = phys_initrd_size;
+ ramdisk_size = phys_external_initramfs_size;
return ramdisk_size;
}
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index 1ce428e2ac8a..7cab72da2ea9 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -808,13 +808,13 @@ int __init efi_config_parse_tables(const efi_config_table_t *config_tables,
}
if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) &&
- initrd != EFI_INVALID_TABLE_ADDR && phys_initrd_size == 0) {
+ initrd != EFI_INVALID_TABLE_ADDR && phys_external_initramfs_size == 0) {
struct linux_efi_initrd *tbl;
tbl = early_memremap(initrd, sizeof(*tbl));
if (tbl) {
- phys_initrd_start = tbl->base;
- phys_initrd_size = tbl->size;
+ phys_external_initramfs_start = tbl->base;
+ phys_external_initramfs_size = tbl->size;
early_memunmap(tbl, sizeof(*tbl));
}
}
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 0edd639898a6..9c4c9be948c5 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -760,8 +760,8 @@ static void __early_init_dt_declare_initrd(unsigned long start,
{
/*
* __va() is not yet available this early on some platforms. In that
- * case, the platform uses phys_initrd_start/phys_initrd_size instead
- * and does the VA conversion itself.
+ * case, the platform uses phys_external_initramfs_start/phys_external_initramfs_size
+ * instead and does the VA conversion itself.
*/
if (!IS_ENABLED(CONFIG_ARM64) &&
!(IS_ENABLED(CONFIG_RISCV) && IS_ENABLED(CONFIG_64BIT))) {
@@ -799,8 +799,8 @@ static void __init early_init_dt_check_for_initrd(unsigned long node)
return;
__early_init_dt_declare_initrd(start, end);
- phys_initrd_start = start;
- phys_initrd_size = end - start;
+ phys_external_initramfs_start = start;
+ phys_external_initramfs_size = end - start;
pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n", start, end);
}
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index 4080ba82d4c9..23c08e88234c 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -17,8 +17,8 @@ static inline void __init reserve_initrd_mem(void) {}
static inline void wait_for_initramfs(void) {}
#endif
-extern phys_addr_t phys_initrd_start;
-extern unsigned long phys_initrd_size;
+extern phys_addr_t phys_external_initramfs_start;
+extern unsigned long phys_external_initramfs_size;
extern char __builtin_initramfs_start[];
extern unsigned long __builtin_initramfs_size;
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index d5264e9a52e0..444182a76999 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -15,8 +15,8 @@
unsigned long initrd_start, initrd_end;
int initrd_below_start_ok;
-phys_addr_t phys_initrd_start __initdata;
-unsigned long phys_initrd_size __initdata;
+phys_addr_t phys_external_initramfs_start __initdata;
+unsigned long phys_external_initramfs_size __initdata;
static int __init early_initrdmem(char *p)
{
@@ -28,8 +28,8 @@ static int __init early_initrdmem(char *p)
if (*endp == ',') {
size = memparse(endp + 1, NULL);
- phys_initrd_start = start;
- phys_initrd_size = size;
+ phys_external_initramfs_start = start;
+ phys_external_initramfs_size = size;
}
return 0;
}
diff --git a/init/initramfs.c b/init/initramfs.c
index 2866d7a0afd7..6abe0a3ca4ce 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -610,7 +610,7 @@ void __init reserve_initrd_mem(void)
/* Ignore the virtul address computed during device tree parsing */
initrd_start = initrd_end = 0;
- if (!phys_initrd_size)
+ if (!phys_external_initramfs_size)
return;
/*
* Round the memory region to page boundaries as per free_initrd_mem()
@@ -618,8 +618,8 @@ void __init reserve_initrd_mem(void)
* are in use, but more importantly, reserves the entire set of pages
* as we don't want these pages allocated for other purposes.
*/
- start = round_down(phys_initrd_start, PAGE_SIZE);
- size = phys_initrd_size + (phys_initrd_start - start);
+ start = round_down(phys_external_initramfs_start, PAGE_SIZE);
+ size = phys_external_initramfs_size + (phys_external_initramfs_start - start);
size = round_up(size, PAGE_SIZE);
if (!memblock_is_region_memory(start, size)) {
@@ -636,8 +636,8 @@ void __init reserve_initrd_mem(void)
memblock_reserve(start, size);
/* Now convert initrd to virtual addresses */
- initrd_start = (unsigned long)__va(phys_initrd_start);
- initrd_end = initrd_start + phys_initrd_size;
+ initrd_start = (unsigned long)__va(phys_external_initramfs_start);
+ initrd_end = initrd_start + phys_external_initramfs_size;
initrd_below_start_ok = 1;
return;
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 26/62] init: move phys_external_initramfs_{start,size} to init/initramfs.c
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Move definitions of phys_external_initramfs_start and
phys_external_initramfs_size to init/initramfs.c
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts_initrd.c | 3 ---
init/initramfs.c | 3 +++
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 444182a76999..06be76aa602c 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -15,9 +15,6 @@
unsigned long initrd_start, initrd_end;
int initrd_below_start_ok;
-phys_addr_t phys_external_initramfs_start __initdata;
-unsigned long phys_external_initramfs_size __initdata;
-
static int __init early_initrdmem(char *p)
{
phys_addr_t start;
diff --git a/init/initramfs.c b/init/initramfs.c
index 6abe0a3ca4ce..5242d851e839 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -600,6 +600,9 @@ __setup("initramfs_async=", initramfs_async_setup);
#include <linux/initrd.h>
#include <linux/kexec.h>
+phys_addr_t phys_external_initramfs_start __initdata;
+unsigned long phys_external_initramfs_size __initdata;
+
static BIN_ATTR(initrd, 0440, sysfs_bin_attr_simple_read, NULL, 0);
void __init reserve_initrd_mem(void)
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 27/62] init: alpha: remove "extern unsigned long initrd_start, initrd_end"
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
These variables already declared in <linux/initrd.h>, which is
included
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/alpha/kernel/core_irongate.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/alpha/kernel/core_irongate.c b/arch/alpha/kernel/core_irongate.c
index 05dc4c1b9074..3411564144ae 100644
--- a/arch/alpha/kernel/core_irongate.c
+++ b/arch/alpha/kernel/core_irongate.c
@@ -225,8 +225,6 @@ albacore_init_arch(void)
alpha_mv.min_mem_address = pci_mem;
if (memtop > pci_mem) {
#ifdef CONFIG_BLK_DEV_INITRD
- extern unsigned long initrd_start, initrd_end;
-
/* Move the initrd out of the way. */
if (initrd_end && __pa(initrd_end) > pci_mem) {
unsigned long size;
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 28/62] init: alpha, arc, arm, arm64, csky, m68k, microblaze, mips, nios2, openrisc, parisc, powerpc, s390, sh, sparc, um, x86, xtensa: rename initrd_{start,end} to virt_external_initramfs_{start,end}
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Rename initrd_start to virt_external_initramfs_start and
initrd_end to virt_external_initramfs_end.
They refer to initramfs, not to initrd
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/alpha/kernel/core_irongate.c | 6 ++--
arch/alpha/kernel/setup.c | 24 +++++++-------
arch/arc/mm/init.c | 4 +--
arch/arm/mm/init.c | 4 +--
arch/arm64/mm/init.c | 4 +--
arch/csky/kernel/setup.c | 16 ++++-----
arch/m68k/kernel/setup_mm.c | 6 ++--
arch/m68k/kernel/setup_no.c | 6 ++--
arch/m68k/kernel/uboot.c | 6 ++--
arch/microblaze/mm/init.c | 6 ++--
arch/mips/ath79/prom.c | 8 ++---
arch/mips/kernel/setup.c | 44 ++++++++++++-------------
arch/mips/sibyte/common/cfe.c | 22 ++++++-------
arch/nios2/kernel/setup.c | 10 +++---
arch/openrisc/kernel/setup.c | 14 ++++----
arch/parisc/kernel/pdt.c | 2 +-
arch/parisc/kernel/setup.c | 4 +--
arch/parisc/mm/init.c | 24 +++++++-------
arch/powerpc/kernel/prom.c | 14 ++++----
arch/powerpc/kernel/setup-common.c | 14 ++++----
arch/powerpc/platforms/powermac/setup.c | 2 +-
arch/s390/kernel/setup.c | 4 +--
arch/sh/kernel/setup.c | 8 ++---
arch/sparc/mm/init_32.c | 18 +++++-----
arch/sparc/mm/init_64.c | 14 ++++----
arch/um/kernel/initrd.c | 4 +--
arch/x86/kernel/cpu/microcode/core.c | 8 ++---
arch/x86/kernel/setup.c | 12 +++----
arch/xtensa/kernel/setup.c | 14 ++++----
drivers/acpi/tables.c | 4 +--
drivers/of/fdt.c | 4 +--
include/linux/initrd.h | 4 +--
init/do_mounts_initrd.c | 2 +-
init/initramfs.c | 40 +++++++++++-----------
init/main.c | 18 +++++-----
35 files changed, 197 insertions(+), 197 deletions(-)
diff --git a/arch/alpha/kernel/core_irongate.c b/arch/alpha/kernel/core_irongate.c
index 3411564144ae..5519bb8fc6f2 100644
--- a/arch/alpha/kernel/core_irongate.c
+++ b/arch/alpha/kernel/core_irongate.c
@@ -226,11 +226,11 @@ albacore_init_arch(void)
if (memtop > pci_mem) {
#ifdef CONFIG_BLK_DEV_INITRD
/* Move the initrd out of the way. */
- if (initrd_end && __pa(initrd_end) > pci_mem) {
+ if (virt_external_initramfs_end && __pa(virt_external_initramfs_end) > pci_mem) {
unsigned long size;
- size = initrd_end - initrd_start;
- memblock_free((void *)initrd_start, PAGE_ALIGN(size));
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
+ memblock_free((void *)virt_external_initramfs_start, PAGE_ALIGN(size));
if (!move_initrd(pci_mem))
printk("irongate_init_arch: initrd too big "
"(%ldK)\ndisabling initrd\n",
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index bebdffafaee8..a344e71b2d2a 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -268,15 +268,15 @@ move_initrd(unsigned long mem_limit)
void *start;
unsigned long size;
- size = initrd_end - initrd_start;
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
start = memblock_alloc(PAGE_ALIGN(size), PAGE_SIZE);
if (!start || __pa(start) + size > mem_limit) {
- initrd_start = initrd_end = 0;
+ virt_external_initramfs_start = virt_external_initramfs_end = 0;
return NULL;
}
- memmove(start, (void *)initrd_start, size);
- initrd_start = (unsigned long)start;
- initrd_end = initrd_start + size;
+ memmove(start, (void *)virt_external_initramfs_start, size);
+ virt_external_initramfs_start = (unsigned long)start;
+ virt_external_initramfs_end = virt_external_initramfs_start + size;
printk("initrd moved to %p\n", start);
return start;
}
@@ -347,20 +347,20 @@ setup_memory(void *kernel_end)
memblock_reserve(KERNEL_START_PHYS, kernel_size);
#ifdef CONFIG_BLK_DEV_INITRD
- initrd_start = INITRD_START;
- if (initrd_start) {
- initrd_end = initrd_start+INITRD_SIZE;
+ virt_external_initramfs_start = INITRD_START;
+ if (virt_external_initramfs_start) {
+ virt_external_initramfs_end = virt_external_initramfs_start+INITRD_SIZE;
printk("Initial ramdisk at: 0x%p (%lu bytes)\n",
- (void *) initrd_start, INITRD_SIZE);
+ (void *) virt_external_initramfs_start, INITRD_SIZE);
- if ((void *)initrd_end > phys_to_virt(PFN_PHYS(max_low_pfn))) {
+ if ((void *)virt_external_initramfs_end > phys_to_virt(PFN_PHYS(max_low_pfn))) {
if (!move_initrd(PFN_PHYS(max_low_pfn)))
printk("initrd extends beyond end of memory "
"(0x%08lx > 0x%p)\ndisabling initrd\n",
- initrd_end,
+ virt_external_initramfs_end,
phys_to_virt(PFN_PHYS(max_low_pfn)));
} else {
- memblock_reserve(virt_to_phys((void *)initrd_start),
+ memblock_reserve(virt_to_phys((void *)virt_external_initramfs_start),
INITRD_SIZE);
}
}
diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c
index eb8a616a63c6..1e098d7fc6af 100644
--- a/arch/arc/mm/init.c
+++ b/arch/arc/mm/init.c
@@ -112,8 +112,8 @@ void __init setup_arch_memory(void)
#ifdef CONFIG_BLK_DEV_INITRD
if (phys_external_initramfs_size) {
memblock_reserve(phys_external_initramfs_start, phys_external_initramfs_size);
- initrd_start = (unsigned long)__va(phys_external_initramfs_start);
- initrd_end = initrd_start + phys_external_initramfs_size;
+ virt_external_initramfs_start = (unsigned long)__va(phys_external_initramfs_start);
+ virt_external_initramfs_end = virt_external_initramfs_start + phys_external_initramfs_size;
}
#endif
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 93f8010b9115..4faeec51c522 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -439,9 +439,9 @@ void free_initmem(void)
#ifdef CONFIG_BLK_DEV_INITRD
void free_initrd_mem(unsigned long start, unsigned long end)
{
- if (start == initrd_start)
+ if (start == virt_external_initramfs_start)
start = round_down(start, PAGE_SIZE);
- if (end == initrd_end)
+ if (end == virt_external_initramfs_end)
end = round_up(end, PAGE_SIZE);
poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index da517edcf824..3414e48c8c82 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -283,8 +283,8 @@ void __init arm64_memblock_init(void)
memblock_reserve(__pa_symbol(_stext), _end - _stext);
if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_external_initramfs_size) {
/* the generic initrd code expects virtual addresses */
- initrd_start = __phys_to_virt(phys_external_initramfs_start);
- initrd_end = initrd_start + phys_external_initramfs_size;
+ virt_external_initramfs_start = __phys_to_virt(phys_external_initramfs_start);
+ virt_external_initramfs_end = virt_external_initramfs_start + phys_external_initramfs_size;
}
early_init_fdt_scan_reserved_mem();
diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
index e0d6ca86ea8c..ce128888462e 100644
--- a/arch/csky/kernel/setup.c
+++ b/arch/csky/kernel/setup.c
@@ -17,35 +17,35 @@ static void __init setup_initrd(void)
{
unsigned long size;
- if (initrd_start >= initrd_end) {
+ if (virt_external_initramfs_start >= virt_external_initramfs_end) {
pr_err("initrd not found or empty");
goto disable;
}
- if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
+ if (__pa(virt_external_initramfs_end) > PFN_PHYS(max_low_pfn)) {
pr_err("initrd extends beyond end of memory");
goto disable;
}
- size = initrd_end - initrd_start;
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
- if (memblock_is_region_reserved(__pa(initrd_start), size)) {
+ if (memblock_is_region_reserved(__pa(virt_external_initramfs_start), size)) {
pr_err("INITRD: 0x%08lx+0x%08lx overlaps in-use memory region",
- __pa(initrd_start), size);
+ __pa(virt_external_initramfs_start), size);
goto disable;
}
- memblock_reserve(__pa(initrd_start), size);
+ memblock_reserve(__pa(virt_external_initramfs_start), size);
pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n",
- (void *)(initrd_start), size);
+ (void *)(virt_external_initramfs_start), size);
initrd_below_start_ok = 1;
return;
disable:
- initrd_start = initrd_end = 0;
+ virt_external_initramfs_start = virt_external_initramfs_end = 0;
pr_err(" - disabling initrd\n");
}
diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
index c7e8de0d34bb..80f0544c1041 100644
--- a/arch/m68k/kernel/setup_mm.c
+++ b/arch/m68k/kernel/setup_mm.c
@@ -333,9 +333,9 @@ void __init setup_arch(char **cmdline_p)
paging_init();
if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && m68k_ramdisk.size) {
- initrd_start = (unsigned long)phys_to_virt(m68k_ramdisk.addr);
- initrd_end = initrd_start + m68k_ramdisk.size;
- pr_info("initrd: %08lx - %08lx\n", initrd_start, initrd_end);
+ virt_external_initramfs_start = (unsigned long)phys_to_virt(m68k_ramdisk.addr);
+ virt_external_initramfs_end = virt_external_initramfs_start + m68k_ramdisk.size;
+ pr_info("initrd: %08lx - %08lx\n", virt_external_initramfs_start, virt_external_initramfs_end);
}
#ifdef CONFIG_NATFEAT
diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c
index f724875b15cc..4d98e0063725 100644
--- a/arch/m68k/kernel/setup_no.c
+++ b/arch/m68k/kernel/setup_no.c
@@ -155,9 +155,9 @@ void __init setup_arch(char **cmdline_p)
max_pfn = max_low_pfn = PFN_DOWN(memory_end);
#if defined(CONFIG_UBOOT) && defined(CONFIG_BLK_DEV_INITRD)
- if ((initrd_start > 0) && (initrd_start < initrd_end) &&
- (initrd_end < memory_end))
- memblock_reserve(initrd_start, initrd_end - initrd_start);
+ if ((virt_external_initramfs_start > 0) && (virt_external_initramfs_start < virt_external_initramfs_end) &&
+ (virt_external_initramfs_end < memory_end))
+ memblock_reserve(virt_external_initramfs_start, virt_external_initramfs_end - virt_external_initramfs_start);
#endif /* if defined(CONFIG_BLK_DEV_INITRD) */
/*
diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c
index d278060a250c..5fc831a0794a 100644
--- a/arch/m68k/kernel/uboot.c
+++ b/arch/m68k/kernel/uboot.c
@@ -81,9 +81,9 @@ static void __init parse_uboot_commandline(char *commandp, int size)
if (uboot_initrd_start && uboot_initrd_end &&
(uboot_initrd_end > uboot_initrd_start)) {
- initrd_start = uboot_initrd_start;
- initrd_end = uboot_initrd_end;
- pr_info("initrd at 0x%lx:0x%lx\n", initrd_start, initrd_end);
+ virt_external_initramfs_start = uboot_initrd_start;
+ virt_external_initramfs_end = uboot_initrd_end;
+ pr_info("initrd at 0x%lx:0x%lx\n", virt_external_initramfs_start, virt_external_initramfs_end);
}
#endif /* if defined(CONFIG_BLK_DEV_INITRD) */
}
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index 31d475cdb1c5..fabeca49c2c6 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -202,10 +202,10 @@ asmlinkage void __init mmu_init(void)
#if defined(CONFIG_BLK_DEV_INITRD)
/* Remove the init RAM disk from the available memory. */
- if (initrd_start) {
+ if (virt_external_initramfs_start) {
unsigned long size;
- size = initrd_end - initrd_start;
- memblock_reserve(__virt_to_phys(initrd_start), size);
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
+ memblock_reserve(__virt_to_phys(virt_external_initramfs_start), size);
}
#endif /* CONFIG_BLK_DEV_INITRD */
diff --git a/arch/mips/ath79/prom.c b/arch/mips/ath79/prom.c
index cc6dc5600677..506dcada711b 100644
--- a/arch/mips/ath79/prom.c
+++ b/arch/mips/ath79/prom.c
@@ -25,10 +25,10 @@ void __init prom_init(void)
#ifdef CONFIG_BLK_DEV_INITRD
/* Read the initrd address from the firmware environment */
- initrd_start = fw_getenvl("initrd_start");
- if (initrd_start) {
- initrd_start = KSEG0ADDR(initrd_start);
- initrd_end = initrd_start + fw_getenvl("initrd_size");
+ virt_external_initramfs_start = fw_getenvl("initrd_start");
+ if (virt_external_initramfs_start) {
+ virt_external_initramfs_start = KSEG0ADDR(virt_external_initramfs_start);
+ virt_external_initramfs_end = virt_external_initramfs_start + fw_getenvl("initrd_size");
}
#endif
}
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index a78e24873231..da11ae875539 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -126,15 +126,15 @@ static int __init rd_start_early(char *p)
if (start < XKPHYS)
start = (int)start;
#endif
- initrd_start = start;
- initrd_end += start;
+ virt_external_initramfs_start = start;
+ virt_external_initramfs_end += start;
return 0;
}
early_param("rd_start", rd_start_early);
static int __init rd_size_early(char *p)
{
- initrd_end += memparse(p, &p);
+ virt_external_initramfs_end += memparse(p, &p);
return 0;
}
early_param("rd_size", rd_size_early);
@@ -146,13 +146,13 @@ static unsigned long __init init_initrd(void)
/*
* Board specific code or command line parser should have
- * already set up initrd_start and initrd_end. In these cases
+ * already set up virt_external_initramfs_start and virt_external_initramfs_end. In these cases
* perform sanity checks and use them if all looks good.
*/
- if (!initrd_start || initrd_end <= initrd_start)
+ if (!virt_external_initramfs_start || virt_external_initramfs_end <= virt_external_initramfs_start)
goto disable;
- if (initrd_start & ~PAGE_MASK) {
+ if (virt_external_initramfs_start & ~PAGE_MASK) {
pr_err("initrd start must be page aligned\n");
goto disable;
}
@@ -164,19 +164,19 @@ static unsigned long __init init_initrd(void)
* 32-bit. We need also to switch from KSEG0 to XKPHYS
* addresses now, so the code can now safely use __pa().
*/
- end = __pa(initrd_end);
- initrd_end = (unsigned long)__va(end);
- initrd_start = (unsigned long)__va(__pa(initrd_start));
+ end = __pa(virt_external_initramfs_end);
+ virt_external_initramfs_end = (unsigned long)__va(end);
+ virt_external_initramfs_start = (unsigned long)__va(__pa(virt_external_initramfs_start));
- if (initrd_start < PAGE_OFFSET) {
+ if (virt_external_initramfs_start < PAGE_OFFSET) {
pr_err("initrd start < PAGE_OFFSET\n");
goto disable;
}
return PFN_UP(end);
disable:
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
return 0;
}
@@ -189,21 +189,21 @@ static void __init maybe_bswap_initrd(void)
u64 buf;
/* Check for CPIO signature */
- if (!memcmp((void *)initrd_start, "070701", 6))
+ if (!memcmp((void *)virt_external_initramfs_start, "070701", 6))
return;
/* Check for compressed initrd */
- if (decompress_method((unsigned char *)initrd_start, 8, NULL))
+ if (decompress_method((unsigned char *)virt_external_initramfs_start, 8, NULL))
return;
/* Try again with a byte swapped header */
- buf = swab64p((u64 *)initrd_start);
+ buf = swab64p((u64 *)virt_external_initramfs_start);
if (!memcmp(&buf, "070701", 6) ||
decompress_method((unsigned char *)(&buf), 8, NULL)) {
unsigned long i;
pr_info("Byteswapped initrd detected\n");
- for (i = initrd_start; i < ALIGN(initrd_end, 8); i += 8)
+ for (i = virt_external_initramfs_start; i < ALIGN(virt_external_initramfs_end, 8); i += 8)
swab64s((u64 *)i);
}
#endif
@@ -211,29 +211,29 @@ static void __init maybe_bswap_initrd(void)
static void __init finalize_initrd(void)
{
- unsigned long size = initrd_end - initrd_start;
+ unsigned long size = virt_external_initramfs_end - virt_external_initramfs_start;
if (size == 0) {
printk(KERN_INFO "Initrd not found or empty");
goto disable;
}
- if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
+ if (__pa(virt_external_initramfs_end) > PFN_PHYS(max_low_pfn)) {
printk(KERN_ERR "Initrd extends beyond end of memory");
goto disable;
}
maybe_bswap_initrd();
- memblock_reserve(__pa(initrd_start), size);
+ memblock_reserve(__pa(virt_external_initramfs_start), size);
initrd_below_start_ok = 1;
pr_info("Initial ramdisk at: 0x%lx (%lu bytes)\n",
- initrd_start, size);
+ virt_external_initramfs_start, size);
return;
disable:
printk(KERN_CONT " - disabling initrd\n");
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
}
#else /* !CONFIG_BLK_DEV_INITRD */
diff --git a/arch/mips/sibyte/common/cfe.c b/arch/mips/sibyte/common/cfe.c
index 2cb90dbbe843..642b7d615594 100644
--- a/arch/mips/sibyte/common/cfe.c
+++ b/arch/mips/sibyte/common/cfe.c
@@ -38,7 +38,7 @@
int cfe_cons_handle;
#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start, initrd_end;
+extern unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
#endif
static void __noreturn cfe_linux_exit(void *arg)
@@ -86,9 +86,9 @@ static __init void prom_meminit(void)
unsigned long initrd_pstart;
unsigned long initrd_pend;
- initrd_pstart = CPHYSADDR(initrd_start);
- initrd_pend = CPHYSADDR(initrd_end);
- if (initrd_start &&
+ initrd_pstart = CPHYSADDR(virt_external_initramfs_start);
+ initrd_pend = CPHYSADDR(virt_external_initramfs_end);
+ if (virt_external_initramfs_start &&
((initrd_pstart > MAX_RAM_SIZE)
|| (initrd_pend > MAX_RAM_SIZE))) {
panic("initrd out of addressable memory");
@@ -105,7 +105,7 @@ static __init void prom_meminit(void)
* ramdisk
*/
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
+ if (virt_external_initramfs_start) {
if ((initrd_pstart > addr) &&
(initrd_pstart < (addr + size))) {
memblock_add(addr,
@@ -139,7 +139,7 @@ static __init void prom_meminit(void)
}
}
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
+ if (virt_external_initramfs_start) {
memblock_add(initrd_pstart, initrd_pend - initrd_pstart);
memblock_reserve(initrd_pstart, initrd_pend - initrd_pstart);
}
@@ -183,17 +183,17 @@ static int __init initrd_setup(char *str)
goto fail;
}
*(tmp-1) = '@';
- initrd_start = simple_strtoul(tmp, &endptr, 16);
+ virt_external_initramfs_start = simple_strtoul(tmp, &endptr, 16);
if (*endptr) {
goto fail;
}
- initrd_end = initrd_start + initrd_size;
- printk("Found initrd of %lx@%lx\n", initrd_size, initrd_start);
+ virt_external_initramfs_end = virt_external_initramfs_start + initrd_size;
+ printk("Found initrd of %lx@%lx\n", initrd_size, virt_external_initramfs_start);
return 1;
fail:
printk("Bad initrd argument. Disabling initrd\n");
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
return 1;
}
diff --git a/arch/nios2/kernel/setup.c b/arch/nios2/kernel/setup.c
index 2a40150142c3..3cc44fa4931c 100644
--- a/arch/nios2/kernel/setup.c
+++ b/arch/nios2/kernel/setup.c
@@ -109,8 +109,8 @@ asmlinkage void __init nios2_boot_init(unsigned r4, unsigned r5, unsigned r6,
if (r4 == 0x534f494e) { /* r4 is magic NIOS */
#if defined(CONFIG_BLK_DEV_INITRD)
if (r5) { /* initramfs */
- initrd_start = r5;
- initrd_end = r6;
+ virt_external_initramfs_start = r5;
+ virt_external_initramfs_end = r6;
}
#endif /* CONFIG_BLK_DEV_INITRD */
dtb_passed = r6;
@@ -161,9 +161,9 @@ void __init setup_arch(char **cmdline_p)
memblock_reserve(__pa_symbol(_stext), _end - _stext);
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
- memblock_reserve(virt_to_phys((void *)initrd_start),
- initrd_end - initrd_start);
+ if (virt_external_initramfs_start) {
+ memblock_reserve(virt_to_phys((void *)virt_external_initramfs_start),
+ virt_external_initramfs_end - virt_external_initramfs_start);
}
#endif /* CONFIG_BLK_DEV_INITRD */
diff --git a/arch/openrisc/kernel/setup.c b/arch/openrisc/kernel/setup.c
index a9fb9cc6779e..f387dc57ec35 100644
--- a/arch/openrisc/kernel/setup.c
+++ b/arch/openrisc/kernel/setup.c
@@ -77,9 +77,9 @@ static void __init setup_memory(void)
#ifdef CONFIG_BLK_DEV_INITRD
/* Then reserve the initrd, if any */
- if (initrd_start && (initrd_end > initrd_start)) {
- unsigned long aligned_start = ALIGN_DOWN(initrd_start, PAGE_SIZE);
- unsigned long aligned_end = ALIGN(initrd_end, PAGE_SIZE);
+ if (virt_external_initramfs_start && (virt_external_initramfs_end > virt_external_initramfs_start)) {
+ unsigned long aligned_start = ALIGN_DOWN(virt_external_initramfs_start, PAGE_SIZE);
+ unsigned long aligned_end = ALIGN(virt_external_initramfs_end, PAGE_SIZE);
memblock_reserve(__pa(aligned_start), aligned_end - aligned_start);
}
@@ -239,13 +239,13 @@ void __init setup_arch(char **cmdline_p)
setup_initial_init_mm(_stext, _etext, _edata, _end);
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start == initrd_end) {
+ if (virt_external_initramfs_start == virt_external_initramfs_end) {
printk(KERN_INFO "Initial ramdisk not found\n");
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
} else {
printk(KERN_INFO "Initial ramdisk at: 0x%p (%lu bytes)\n",
- (void *)(initrd_start), initrd_end - initrd_start);
+ (void *)(virt_external_initramfs_start), virt_external_initramfs_end - virt_external_initramfs_start);
initrd_below_start_ok = 1;
}
#endif
diff --git a/arch/parisc/kernel/pdt.c b/arch/parisc/kernel/pdt.c
index b70b67adb855..3715a3b088a7 100644
--- a/arch/parisc/kernel/pdt.c
+++ b/arch/parisc/kernel/pdt.c
@@ -229,7 +229,7 @@ void __init pdc_pdt_init(void)
addr = pdt_entry[i] & PDT_ADDR_PHYS_MASK;
if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) &&
- addr >= initrd_start && addr < initrd_end)
+ addr >= virt_external_initramfs_start && addr < virt_external_initramfs_end)
pr_crit("CRITICAL: initrd possibly broken "
"due to bad memory!\n");
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c
index ace483b6f19a..41f45fa177d0 100644
--- a/arch/parisc/kernel/setup.c
+++ b/arch/parisc/kernel/setup.c
@@ -71,8 +71,8 @@ static void __init setup_cmdline(char **cmdline_p)
#ifdef CONFIG_BLK_DEV_INITRD
/* did palo pass us a ramdisk? */
if (boot_args[2] != 0) {
- initrd_start = (unsigned long)__va(boot_args[2]);
- initrd_end = (unsigned long)__va(boot_args[3]);
+ virt_external_initramfs_start = (unsigned long)__va(boot_args[2]);
+ virt_external_initramfs_end = (unsigned long)__va(boot_args[3]);
}
#endif
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 14270715d754..74bfe9797589 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -298,20 +298,20 @@ static void __init setup_bootmem(void)
#endif
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
- printk(KERN_INFO "initrd: %08lx-%08lx\n", initrd_start, initrd_end);
- if (__pa(initrd_start) < mem_max) {
+ if (virt_external_initramfs_start) {
+ printk(KERN_INFO "initrd: %08lx-%08lx\n", virt_external_initramfs_start, virt_external_initramfs_end);
+ if (__pa(virt_external_initramfs_start) < mem_max) {
unsigned long initrd_reserve;
- if (__pa(initrd_end) > mem_max) {
- initrd_reserve = mem_max - __pa(initrd_start);
+ if (__pa(virt_external_initramfs_end) > mem_max) {
+ initrd_reserve = mem_max - __pa(virt_external_initramfs_start);
} else {
- initrd_reserve = initrd_end - initrd_start;
+ initrd_reserve = virt_external_initramfs_end - virt_external_initramfs_start;
}
initrd_below_start_ok = 1;
- printk(KERN_INFO "initrd: reserving %08lx-%08lx (mem_max %08lx)\n", __pa(initrd_start), __pa(initrd_start) + initrd_reserve, mem_max);
+ printk(KERN_INFO "initrd: reserving %08lx-%08lx (mem_max %08lx)\n", __pa(virt_external_initramfs_start), __pa(virt_external_initramfs_start) + initrd_reserve, mem_max);
- memblock_reserve(__pa(initrd_start), initrd_reserve);
+ memblock_reserve(__pa(virt_external_initramfs_start), initrd_reserve);
}
}
#endif
@@ -633,10 +633,10 @@ static void __init pagetable_init(void)
}
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_end && initrd_end > mem_limit) {
- printk(KERN_INFO "initrd: mapping %08lx-%08lx\n", initrd_start, initrd_end);
- map_pages(initrd_start, __pa(initrd_start),
- initrd_end - initrd_start, PAGE_KERNEL, 0);
+ if (virt_external_initramfs_end && virt_external_initramfs_end > mem_limit) {
+ printk(KERN_INFO "initrd: mapping %08lx-%08lx\n", virt_external_initramfs_start, virt_external_initramfs_end);
+ map_pages(virt_external_initramfs_start, __pa(virt_external_initramfs_start),
+ virt_external_initramfs_end - virt_external_initramfs_start, PAGE_KERNEL, 0);
}
#endif
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 9ed9dde7d231..b7858b0bd697 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -97,11 +97,11 @@ early_param("mem", early_parse_mem);
static inline int overlaps_initrd(unsigned long start, unsigned long size)
{
#ifdef CONFIG_BLK_DEV_INITRD
- if (!initrd_start)
+ if (!virt_external_initramfs_start)
return 0;
- return (start + size) > ALIGN_DOWN(initrd_start, PAGE_SIZE) &&
- start <= ALIGN(initrd_end, PAGE_SIZE);
+ return (start + size) > ALIGN_DOWN(virt_external_initramfs_start, PAGE_SIZE) &&
+ start <= ALIGN(virt_external_initramfs_end, PAGE_SIZE);
#else
return 0;
#endif
@@ -686,10 +686,10 @@ static void __init early_reserve_mem(void)
#ifdef CONFIG_BLK_DEV_INITRD
/* Then reserve the initrd, if any */
- if (initrd_start && (initrd_end > initrd_start)) {
- memblock_reserve(ALIGN_DOWN(__pa(initrd_start), PAGE_SIZE),
- ALIGN(initrd_end, PAGE_SIZE) -
- ALIGN_DOWN(initrd_start, PAGE_SIZE));
+ if (virt_external_initramfs_start && (virt_external_initramfs_end > virt_external_initramfs_start)) {
+ memblock_reserve(ALIGN_DOWN(__pa(virt_external_initramfs_start), PAGE_SIZE),
+ ALIGN(virt_external_initramfs_end, PAGE_SIZE) -
+ ALIGN_DOWN(virt_external_initramfs_start, PAGE_SIZE));
}
#endif /* CONFIG_BLK_DEV_INITRD */
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 97d330f3b8f1..eff369cba0e5 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -360,17 +360,17 @@ const struct seq_operations cpuinfo_op = {
void __init check_for_initrd(void)
{
#ifdef CONFIG_BLK_DEV_INITRD
- DBG(" -> check_for_initrd() initrd_start=0x%lx initrd_end=0x%lx\n",
- initrd_start, initrd_end);
+ DBG(" -> check_for_initrd() virt_external_initramfs_start=0x%lx virt_external_initramfs_end=0x%lx\n",
+ virt_external_initramfs_start, virt_external_initramfs_end);
/* If we were not passed an sensible initramfs, clear initramfs reference.
*/
- if (!(is_kernel_addr(initrd_start) && is_kernel_addr(initrd_end) &&
- initrd_end > initrd_start))
- initrd_start = initrd_end = 0;
+ if (!(is_kernel_addr(virt_external_initramfs_start) && is_kernel_addr(virt_external_initramfs_end) &&
+ virt_external_initramfs_end > virt_external_initramfs_start))
+ virt_external_initramfs_start = virt_external_initramfs_end = 0;
- if (initrd_start)
- pr_info("Found initramfs at 0x%lx:0x%lx\n", initrd_start, initrd_end);
+ if (virt_external_initramfs_start)
+ pr_info("Found initramfs at 0x%lx:0x%lx\n", virt_external_initramfs_start, virt_external_initramfs_end);
DBG(" <- check_for_initrd()\n");
#endif /* CONFIG_BLK_DEV_INITRD */
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index 237d8386a3f4..4c3b9ed5428d 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -296,7 +296,7 @@ static void __init pmac_setup_arch(void)
#endif
#ifdef CONFIG_PPC32
#ifdef CONFIG_BLK_DEV_INITRD
- if (!initrd_start)
+ if (!virt_external_initramfs_start)
#endif
ROOT_DEV = DEFAULT_ROOT_DEVICE;
#endif
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index a4ce721b7fe8..9bdb6f6b893e 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -672,8 +672,8 @@ static void __init reserve_initrd(void)
if (!IS_ENABLED(CONFIG_BLK_DEV_INITRD) || !get_physmem_reserved(RR_INITRD, &addr, &size))
return;
- initrd_start = (unsigned long)__va(addr);
- initrd_end = initrd_start + size;
+ virt_external_initramfs_start = (unsigned long)__va(addr);
+ virt_external_initramfs_end = virt_external_initramfs_start + size;
memblock_reserve(addr, size);
}
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index c4312ee13db9..9ce9dc5b9e56 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -153,16 +153,16 @@ void __init check_for_initrd(void)
/*
* Address sanitization
*/
- initrd_start = (unsigned long)__va(start);
- initrd_end = initrd_start + INITRD_SIZE;
+ virt_external_initramfs_start = (unsigned long)__va(start);
+ virt_external_initramfs_end = virt_external_initramfs_start + INITRD_SIZE;
- memblock_reserve(__pa(initrd_start), INITRD_SIZE);
+ memblock_reserve(__pa(virt_external_initramfs_start), INITRD_SIZE);
return;
disable:
pr_info("initrd disabled\n");
- initrd_start = initrd_end = 0;
+ virt_external_initramfs_start = virt_external_initramfs_end = 0;
#endif
}
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
index fdc93dd12c3e..7b7722ff5232 100644
--- a/arch/sparc/mm/init_32.c
+++ b/arch/sparc/mm/init_32.c
@@ -109,20 +109,20 @@ static void __init find_ramdisk(unsigned long end_of_phys_memory)
if (sparc_ramdisk_image) {
if (sparc_ramdisk_image >= (unsigned long)&_end - 2 * PAGE_SIZE)
sparc_ramdisk_image -= KERNBASE;
- initrd_start = sparc_ramdisk_image + phys_base;
- initrd_end = initrd_start + sparc_ramdisk_size;
- if (initrd_end > end_of_phys_memory) {
+ virt_external_initramfs_start = sparc_ramdisk_image + phys_base;
+ virt_external_initramfs_end = virt_external_initramfs_start + sparc_ramdisk_size;
+ if (virt_external_initramfs_end > end_of_phys_memory) {
printk(KERN_CRIT "initrd extends beyond end of memory "
"(0x%016lx > 0x%016lx)\ndisabling initrd\n",
- initrd_end, end_of_phys_memory);
- initrd_start = 0;
+ virt_external_initramfs_end, end_of_phys_memory);
+ virt_external_initramfs_start = 0;
} else {
/* Reserve the initrd image area. */
- size = initrd_end - initrd_start;
- memblock_reserve(initrd_start, size);
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
+ memblock_reserve(virt_external_initramfs_start, size);
- initrd_start = (initrd_start - phys_base) + PAGE_OFFSET;
- initrd_end = (initrd_end - phys_base) + PAGE_OFFSET;
+ virt_external_initramfs_start = (virt_external_initramfs_start - phys_base) + PAGE_OFFSET;
+ virt_external_initramfs_end = (virt_external_initramfs_end - phys_base) + PAGE_OFFSET;
}
}
#endif
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 7ed58bf3aaca..af249a654e79 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -901,13 +901,13 @@ static void __init find_ramdisk(unsigned long phys_base)
numadbg("Found ramdisk at physical address 0x%lx, size %u\n",
ramdisk_image, sparc_ramdisk_size);
- initrd_start = ramdisk_image;
- initrd_end = ramdisk_image + sparc_ramdisk_size;
+ virt_external_initramfs_start = ramdisk_image;
+ virt_external_initramfs_end = ramdisk_image + sparc_ramdisk_size;
- memblock_reserve(initrd_start, sparc_ramdisk_size);
+ memblock_reserve(virt_external_initramfs_start, sparc_ramdisk_size);
- initrd_start += PAGE_OFFSET;
- initrd_end += PAGE_OFFSET;
+ virt_external_initramfs_start += PAGE_OFFSET;
+ virt_external_initramfs_end += PAGE_OFFSET;
}
#endif
}
@@ -2485,8 +2485,8 @@ int page_in_phys_avail(unsigned long paddr)
if (paddr >= kern_base && paddr < (kern_base + kern_size))
return 1;
#ifdef CONFIG_BLK_DEV_INITRD
- if (paddr >= __pa(initrd_start) &&
- paddr < __pa(PAGE_ALIGN(initrd_end)))
+ if (paddr >= __pa(virt_external_initramfs_start) &&
+ paddr < __pa(PAGE_ALIGN(virt_external_initramfs_end)))
return 1;
#endif
diff --git a/arch/um/kernel/initrd.c b/arch/um/kernel/initrd.c
index 99dba827461c..e6113192a6b6 100644
--- a/arch/um/kernel/initrd.c
+++ b/arch/um/kernel/initrd.c
@@ -27,8 +27,8 @@ int __init read_initrd(void)
if (!area)
return 0;
- initrd_start = (unsigned long) area;
- initrd_end = initrd_start + size;
+ virt_external_initramfs_start = (unsigned long) area;
+ virt_external_initramfs_end = virt_external_initramfs_start + size;
return 0;
}
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index b92e09a87c69..b8169f14d175 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -213,13 +213,13 @@ struct cpio_data __init find_microcode_in_initrd(const char *path)
#endif
/*
- * Fixup the start address: after reserve_initrd() runs, initrd_start
+ * Fixup the start address: after reserve_initrd() runs, virt_external_initramfs_start
* has the virtual address of the beginning of the initrd. It also
- * possibly relocates the ramdisk. In either case, initrd_start contains
+ * possibly relocates the ramdisk. In either case, virt_external_initramfs_start contains
* the updated address so use that instead.
*/
- if (initrd_start)
- start = initrd_start;
+ if (virt_external_initramfs_start)
+ start = virt_external_initramfs_start;
return find_cpio_data(path, (void *)start, size, NULL);
#else /* !CONFIG_BLK_DEV_INITRD */
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index e727c7a7f648..167b9ef12ebb 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -328,12 +328,12 @@ static void __init relocate_initrd(void)
panic("Cannot find place for new RAMDISK of size %lld\n",
ramdisk_size);
- initrd_start = relocated_ramdisk + PAGE_OFFSET;
- initrd_end = initrd_start + ramdisk_size;
+ virt_external_initramfs_start = relocated_ramdisk + PAGE_OFFSET;
+ virt_external_initramfs_end = virt_external_initramfs_start + ramdisk_size;
printk(KERN_INFO "Allocated new RAMDISK: [mem %#010llx-%#010llx]\n",
relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1);
- ret = copy_from_early_mem((void *)initrd_start, ramdisk_image, ramdisk_size);
+ ret = copy_from_early_mem((void *)virt_external_initramfs_start, ramdisk_image, ramdisk_size);
if (ret)
panic("Copy RAMDISK failed\n");
@@ -368,7 +368,7 @@ static void __init reserve_initrd(void)
!ramdisk_image || !ramdisk_size)
return; /* No initrd provided by bootloader */
- initrd_start = 0;
+ virt_external_initramfs_start = 0;
printk(KERN_INFO "RAMDISK: [mem %#010llx-%#010llx]\n", ramdisk_image,
ramdisk_end - 1);
@@ -376,8 +376,8 @@ static void __init reserve_initrd(void)
if (pfn_range_is_mapped(PFN_DOWN(ramdisk_image),
PFN_DOWN(ramdisk_end))) {
/* All are mapped, easy case */
- initrd_start = ramdisk_image + PAGE_OFFSET;
- initrd_end = initrd_start + ramdisk_size;
+ virt_external_initramfs_start = ramdisk_image + PAGE_OFFSET;
+ virt_external_initramfs_end = virt_external_initramfs_start + ramdisk_size;
return;
}
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index f72e280363be..2e9003be3e8c 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -49,8 +49,8 @@
#include <asm/traps.h>
#ifdef CONFIG_BLK_DEV_INITRD
-extern unsigned long initrd_start;
-extern unsigned long initrd_end;
+extern unsigned long virt_external_initramfs_start;
+extern unsigned long virt_external_initramfs_end;
extern int initrd_below_start_ok;
#endif
@@ -106,8 +106,8 @@ static int __init parse_tag_initrd(const bp_tag_t* tag)
{
struct bp_meminfo *mi = (struct bp_meminfo *)(tag->data);
- initrd_start = (unsigned long)__va(mi->start);
- initrd_end = (unsigned long)__va(mi->end);
+ virt_external_initramfs_start = (unsigned long)__va(mi->start);
+ virt_external_initramfs_end = (unsigned long)__va(mi->end);
return 0;
}
@@ -290,11 +290,11 @@ void __init setup_arch(char **cmdline_p)
/* Reserve some memory regions */
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start < initrd_end &&
- !mem_reserve(__pa(initrd_start), __pa(initrd_end)))
+ if (virt_external_initramfs_start < virt_external_initramfs_end &&
+ !mem_reserve(__pa(virt_external_initramfs_start), __pa(virt_external_initramfs_end)))
initrd_below_start_ok = 1;
else
- initrd_start = 0;
+ virt_external_initramfs_start = 0;
#endif
mem_reserve(__pa(_stext), __pa(_end));
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 3160cb7dca00..37ad99c10ac4 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -432,8 +432,8 @@ void __init acpi_table_upgrade(void)
data = __builtin_initramfs_start;
size = __builtin_initramfs_size;
} else {
- data = (void *)initrd_start;
- size = initrd_end - initrd_start;
+ data = (void *)virt_external_initramfs_start;
+ size = virt_external_initramfs_end - virt_external_initramfs_start;
}
if (data == NULL || size == 0)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 9c4c9be948c5..baf8347e0314 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -765,8 +765,8 @@ static void __early_init_dt_declare_initrd(unsigned long start,
*/
if (!IS_ENABLED(CONFIG_ARM64) &&
!(IS_ENABLED(CONFIG_RISCV) && IS_ENABLED(CONFIG_64BIT))) {
- initrd_start = (unsigned long)__va(start);
- initrd_end = (unsigned long)__va(end);
+ virt_external_initramfs_start = (unsigned long)__va(start);
+ virt_external_initramfs_end = (unsigned long)__va(end);
initrd_below_start_ok = 1;
}
}
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index 23c08e88234c..f19efebe8221 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -3,10 +3,10 @@
#ifndef __LINUX_INITRD_H
#define __LINUX_INITRD_H
-/* 1 if it is not an error if initrd_start < memory_start */
+/* 1 if it is not an error if virt_external_initramfs_start < memory_start */
extern int initrd_below_start_ok;
-extern unsigned long initrd_start, initrd_end;
+extern unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
extern void free_initrd_mem(unsigned long, unsigned long);
#ifdef CONFIG_BLK_DEV_INITRD
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 06be76aa602c..8bdeb205a0cd 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -12,7 +12,7 @@
#include "do_mounts.h"
-unsigned long initrd_start, initrd_end;
+unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
int initrd_below_start_ok;
static int __init early_initrdmem(char *p)
diff --git a/init/initramfs.c b/init/initramfs.c
index 5242d851e839..9a221c713c60 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -611,7 +611,7 @@ void __init reserve_initrd_mem(void)
unsigned long size;
/* Ignore the virtul address computed during device tree parsing */
- initrd_start = initrd_end = 0;
+ virt_external_initramfs_start = virt_external_initramfs_end = 0;
if (!phys_external_initramfs_size)
return;
@@ -639,15 +639,15 @@ void __init reserve_initrd_mem(void)
memblock_reserve(start, size);
/* Now convert initrd to virtual addresses */
- initrd_start = (unsigned long)__va(phys_external_initramfs_start);
- initrd_end = initrd_start + phys_external_initramfs_size;
+ virt_external_initramfs_start = (unsigned long)__va(phys_external_initramfs_start);
+ virt_external_initramfs_end = virt_external_initramfs_start + phys_external_initramfs_size;
initrd_below_start_ok = 1;
return;
disable:
pr_cont(" - disabling initrd\n");
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
}
void __weak __init free_initrd_mem(unsigned long start, unsigned long end)
@@ -673,17 +673,17 @@ static bool __init kexec_free_initrd(void)
* If the initrd region is overlapped with crashkernel reserved region,
* free only memory that is not part of crashkernel region.
*/
- if (initrd_start >= crashk_end || initrd_end <= crashk_start)
+ if (virt_external_initramfs_start >= crashk_end || virt_external_initramfs_end <= crashk_start)
return false;
/*
* Initialize initrd memory region since the kexec boot does not do.
*/
- memset((void *)initrd_start, 0, initrd_end - initrd_start);
- if (initrd_start < crashk_start)
- free_initrd_mem(initrd_start, crashk_start);
- if (initrd_end > crashk_end)
- free_initrd_mem(crashk_end, initrd_end);
+ memset((void *)virt_external_initramfs_start, 0, virt_external_initramfs_end - virt_external_initramfs_start);
+ if (virt_external_initramfs_start < crashk_start)
+ free_initrd_mem(virt_external_initramfs_start, crashk_start);
+ if (virt_external_initramfs_end > crashk_end)
+ free_initrd_mem(crashk_end, virt_external_initramfs_end);
return true;
}
#else
@@ -700,12 +700,12 @@ static void __init do_populate_rootfs(void *unused, async_cookie_t cookie)
if (err)
panic_show_mem("%s", err); /* Failed to decompress INTERNAL initramfs */
- if (!initrd_start || IS_ENABLED(CONFIG_INITRAMFS_FORCE))
+ if (!virt_external_initramfs_start || IS_ENABLED(CONFIG_INITRAMFS_FORCE))
goto done;
printk(KERN_INFO "Unpacking initramfs...\n");
- err = unpack_to_rootfs((char *)initrd_start, initrd_end - initrd_start);
+ err = unpack_to_rootfs((char *)virt_external_initramfs_start, virt_external_initramfs_end - virt_external_initramfs_start);
if (err) {
printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err);
}
@@ -717,16 +717,16 @@ static void __init do_populate_rootfs(void *unused, async_cookie_t cookie)
* If the initrd region is overlapped with crashkernel reserved region,
* free only memory that is not part of crashkernel region.
*/
- if (!do_retain_initrd && initrd_start && !kexec_free_initrd()) {
- free_initrd_mem(initrd_start, initrd_end);
- } else if (do_retain_initrd && initrd_start) {
- bin_attr_initrd.size = initrd_end - initrd_start;
- bin_attr_initrd.private = (void *)initrd_start;
+ if (!do_retain_initrd && virt_external_initramfs_start && !kexec_free_initrd()) {
+ free_initrd_mem(virt_external_initramfs_start, virt_external_initramfs_end);
+ } else if (do_retain_initrd && virt_external_initramfs_start) {
+ bin_attr_initrd.size = virt_external_initramfs_end - virt_external_initramfs_start;
+ bin_attr_initrd.private = (void *)virt_external_initramfs_start;
if (sysfs_create_bin_file(firmware_kobj, &bin_attr_initrd))
pr_err("Failed to create initrd sysfs file");
}
- initrd_start = 0;
- initrd_end = 0;
+ virt_external_initramfs_start = 0;
+ virt_external_initramfs_end = 0;
init_flush_fput();
}
diff --git a/init/main.c b/init/main.c
index 0ee0ee7b7c2c..5f4d860ab72a 100644
--- a/init/main.c
+++ b/init/main.c
@@ -271,10 +271,10 @@ static void * __init get_boot_config_from_initrd(size_t *_size)
u32 *hdr;
int i;
- if (!initrd_end)
+ if (!virt_external_initramfs_end)
return NULL;
- data = (char *)initrd_end - BOOTCONFIG_MAGIC_LEN;
+ data = (char *)virt_external_initramfs_end - BOOTCONFIG_MAGIC_LEN;
/*
* Since Grub may align the size of initrd to 4, we must
* check the preceding 3 bytes as well.
@@ -292,9 +292,9 @@ static void * __init get_boot_config_from_initrd(size_t *_size)
csum = le32_to_cpu(hdr[1]);
data = ((void *)hdr) - size;
- if ((unsigned long)data < initrd_start) {
+ if ((unsigned long)data < virt_external_initramfs_start) {
pr_err("bootconfig size %d is greater than initrd size %ld\n",
- size, initrd_end - initrd_start);
+ size, virt_external_initramfs_end - virt_external_initramfs_start);
return NULL;
}
@@ -304,7 +304,7 @@ static void * __init get_boot_config_from_initrd(size_t *_size)
}
/* Remove bootconfig from initramfs/initrd */
- initrd_end = (unsigned long)data;
+ virt_external_initramfs_end = (unsigned long)data;
if (_size)
*_size = size;
@@ -1047,12 +1047,12 @@ void start_kernel(void)
locking_selftest();
#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start && !initrd_below_start_ok &&
- page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
+ if (virt_external_initramfs_start && !initrd_below_start_ok &&
+ page_to_pfn(virt_to_page((void *)virt_external_initramfs_start)) < min_low_pfn) {
pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
- page_to_pfn(virt_to_page((void *)initrd_start)),
+ page_to_pfn(virt_to_page((void *)virt_external_initramfs_start)),
min_low_pfn);
- initrd_start = 0;
+ virt_external_initramfs_start = 0;
}
#endif
setup_per_cpu_pageset();
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 29/62] init: move virt_external_initramfs_{start,end} to init/initramfs.c
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
Move definitions of virt_external_initramfs_start and
virt_external_initramfs_end to init/initramfs.c
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts_initrd.c | 1 -
init/initramfs.c | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 8bdeb205a0cd..535ce459ab94 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -12,7 +12,6 @@
#include "do_mounts.h"
-unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
int initrd_below_start_ok;
static int __init early_initrdmem(char *p)
diff --git a/init/initramfs.c b/init/initramfs.c
index 9a221c713c60..d2301cc6c470 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -600,6 +600,8 @@ __setup("initramfs_async=", initramfs_async_setup);
#include <linux/initrd.h>
#include <linux/kexec.h>
+unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
+
phys_addr_t phys_external_initramfs_start __initdata;
unsigned long phys_external_initramfs_size __initdata;
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 30/62] doc: remove documentation for block device 4 0
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It doesn't work. I tested this both in system booted
using initramfs and in system booted from real root
device directly
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
Documentation/admin-guide/devices.txt | 6 ------
1 file changed, 6 deletions(-)
diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
index 27835389ca49..6ce0940233a8 100644
--- a/Documentation/admin-guide/devices.txt
+++ b/Documentation/admin-guide/devices.txt
@@ -138,12 +138,6 @@
number for BSD PTY devices. As of Linux 2.1.115, this
is no longer supported. Use major numbers 2 and 3.
- 4 block Aliases for dynamically allocated major devices to be used
- when its not possible to create the real device nodes
- because the root filesystem is mounted read-only.
-
- 0 = /dev/root
-
5 char Alternate TTY devices
0 = /dev/tty Current TTY device
1 = /dev/console System console
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 31/62] init: rename initrd_below_start_ok to initramfs_below_start_ok
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
It refers to initramfs, not to initrd
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
arch/csky/kernel/setup.c | 2 +-
arch/mips/kernel/setup.c | 2 +-
arch/openrisc/kernel/setup.c | 2 +-
arch/parisc/mm/init.c | 2 +-
arch/xtensa/kernel/setup.c | 4 ++--
drivers/of/fdt.c | 2 +-
include/linux/initrd.h | 2 +-
init/do_mounts_initrd.c | 2 +-
init/initramfs.c | 2 +-
init/main.c | 2 +-
10 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
index ce128888462e..403a977b8c1f 100644
--- a/arch/csky/kernel/setup.c
+++ b/arch/csky/kernel/setup.c
@@ -40,7 +40,7 @@ static void __init setup_initrd(void)
pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n",
(void *)(virt_external_initramfs_start), size);
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
return;
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index da11ae875539..aed454ebd751 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -225,7 +225,7 @@ static void __init finalize_initrd(void)
maybe_bswap_initrd();
memblock_reserve(__pa(virt_external_initramfs_start), size);
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
pr_info("Initial ramdisk at: 0x%lx (%lu bytes)\n",
virt_external_initramfs_start, size);
diff --git a/arch/openrisc/kernel/setup.c b/arch/openrisc/kernel/setup.c
index f387dc57ec35..337a0381c452 100644
--- a/arch/openrisc/kernel/setup.c
+++ b/arch/openrisc/kernel/setup.c
@@ -246,7 +246,7 @@ void __init setup_arch(char **cmdline_p)
} else {
printk(KERN_INFO "Initial ramdisk at: 0x%p (%lu bytes)\n",
(void *)(virt_external_initramfs_start), virt_external_initramfs_end - virt_external_initramfs_start);
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
}
#endif
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 74bfe9797589..af7a33c8bd31 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -308,7 +308,7 @@ static void __init setup_bootmem(void)
} else {
initrd_reserve = virt_external_initramfs_end - virt_external_initramfs_start;
}
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
printk(KERN_INFO "initrd: reserving %08lx-%08lx (mem_max %08lx)\n", __pa(virt_external_initramfs_start), __pa(virt_external_initramfs_start) + initrd_reserve, mem_max);
memblock_reserve(__pa(virt_external_initramfs_start), initrd_reserve);
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 2e9003be3e8c..b86367178bce 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -51,7 +51,7 @@
#ifdef CONFIG_BLK_DEV_INITRD
extern unsigned long virt_external_initramfs_start;
extern unsigned long virt_external_initramfs_end;
-extern int initrd_below_start_ok;
+extern int initramfs_below_start_ok;
#endif
#ifdef CONFIG_USE_OF
@@ -292,7 +292,7 @@ void __init setup_arch(char **cmdline_p)
#ifdef CONFIG_BLK_DEV_INITRD
if (virt_external_initramfs_start < virt_external_initramfs_end &&
!mem_reserve(__pa(virt_external_initramfs_start), __pa(virt_external_initramfs_end)))
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
else
virt_external_initramfs_start = 0;
#endif
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index baf8347e0314..127b37f211cb 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -767,7 +767,7 @@ static void __early_init_dt_declare_initrd(unsigned long start,
!(IS_ENABLED(CONFIG_RISCV) && IS_ENABLED(CONFIG_64BIT))) {
virt_external_initramfs_start = (unsigned long)__va(start);
virt_external_initramfs_end = (unsigned long)__va(end);
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
}
}
diff --git a/include/linux/initrd.h b/include/linux/initrd.h
index f19efebe8221..364b603215ac 100644
--- a/include/linux/initrd.h
+++ b/include/linux/initrd.h
@@ -4,7 +4,7 @@
#define __LINUX_INITRD_H
/* 1 if it is not an error if virt_external_initramfs_start < memory_start */
-extern int initrd_below_start_ok;
+extern int initramfs_below_start_ok;
extern unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
extern void free_initrd_mem(unsigned long, unsigned long);
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 535ce459ab94..d8b809ced11b 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -12,7 +12,7 @@
#include "do_mounts.h"
-int initrd_below_start_ok;
+int initramfs_below_start_ok;
static int __init early_initrdmem(char *p)
{
diff --git a/init/initramfs.c b/init/initramfs.c
index d2301cc6c470..a9c5d211665d 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -643,7 +643,7 @@ void __init reserve_initrd_mem(void)
/* Now convert initrd to virtual addresses */
virt_external_initramfs_start = (unsigned long)__va(phys_external_initramfs_start);
virt_external_initramfs_end = virt_external_initramfs_start + phys_external_initramfs_size;
- initrd_below_start_ok = 1;
+ initramfs_below_start_ok = 1;
return;
disable:
diff --git a/init/main.c b/init/main.c
index 5f4d860ab72a..58a7199c81f7 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1047,7 +1047,7 @@ void start_kernel(void)
locking_selftest();
#ifdef CONFIG_BLK_DEV_INITRD
- if (virt_external_initramfs_start && !initrd_below_start_ok &&
+ if (virt_external_initramfs_start && !initramfs_below_start_ok &&
page_to_pfn(virt_to_page((void *)virt_external_initramfs_start)) < min_low_pfn) {
pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
page_to_pfn(virt_to_page((void *)virt_external_initramfs_start)),
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 32/62] init: move initramfs_below_start_ok to init/initramfs.c
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This is cleanup after initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts_initrd.c | 2 --
init/initramfs.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index d8b809ced11b..509f912c0fce 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -12,8 +12,6 @@
#include "do_mounts.h"
-int initramfs_below_start_ok;
-
static int __init early_initrdmem(char *p)
{
phys_addr_t start;
diff --git a/init/initramfs.c b/init/initramfs.c
index a9c5d211665d..90096177a867 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -601,6 +601,7 @@ __setup("initramfs_async=", initramfs_async_setup);
#include <linux/kexec.h>
unsigned long virt_external_initramfs_start, virt_external_initramfs_end;
+int initramfs_below_start_ok;
phys_addr_t phys_external_initramfs_start __initdata;
unsigned long phys_external_initramfs_size __initdata;
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 33/62] init: remove init/do_mounts_initrd.c
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This is cleanup after initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/Makefile | 1 -
init/do_mounts_initrd.c | 36 ------------------------------------
init/initramfs.c | 23 +++++++++++++++++++++++
3 files changed, 23 insertions(+), 37 deletions(-)
delete mode 100644 init/do_mounts_initrd.c
diff --git a/init/Makefile b/init/Makefile
index b020154b3d2a..09657c0274eb 100644
--- a/init/Makefile
+++ b/init/Makefile
@@ -17,7 +17,6 @@ obj-$(CONFIG_INITRAMFS_TEST) += initramfs_test.o
obj-y += init_task.o
mounts-y := do_mounts.o
-mounts-$(CONFIG_BLK_DEV_INITRD) += do_mounts_initrd.o
#
# UTS_VERSION
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
deleted file mode 100644
index 509f912c0fce..000000000000
--- a/init/do_mounts_initrd.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/unistd.h>
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/minix_fs.h>
-#include <linux/romfs_fs.h>
-#include <linux/initrd.h>
-#include <linux/sched.h>
-#include <linux/freezer.h>
-#include <linux/kmod.h>
-#include <uapi/linux/mount.h>
-
-#include "do_mounts.h"
-
-static int __init early_initrdmem(char *p)
-{
- phys_addr_t start;
- unsigned long size;
- char *endp;
-
- start = memparse(p, &endp);
- if (*endp == ',') {
- size = memparse(endp + 1, NULL);
-
- phys_external_initramfs_start = start;
- phys_external_initramfs_size = size;
- }
- return 0;
-}
-early_param("initrdmem", early_initrdmem);
-
-static int __init early_initrd(char *p)
-{
- return early_initrdmem(p);
-}
-early_param("initrd", early_initrd);
diff --git a/init/initramfs.c b/init/initramfs.c
index 90096177a867..8ed352721a79 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -606,6 +606,29 @@ int initramfs_below_start_ok;
phys_addr_t phys_external_initramfs_start __initdata;
unsigned long phys_external_initramfs_size __initdata;
+static int __init early_initrdmem(char *p)
+{
+ phys_addr_t start;
+ unsigned long size;
+ char *endp;
+
+ start = memparse(p, &endp);
+ if (*endp == ',') {
+ size = memparse(endp + 1, NULL);
+
+ phys_external_initramfs_start = start;
+ phys_external_initramfs_size = size;
+ }
+ return 0;
+}
+early_param("initrdmem", early_initrdmem);
+
+static int __init early_initrd(char *p)
+{
+ return early_initrdmem(p);
+}
+early_param("initrd", early_initrd);
+
static BIN_ATTR(initrd, 0440, sysfs_bin_attr_simple_read, NULL, 0);
void __init reserve_initrd_mem(void)
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 34/62] init: inline create_dev into the only caller
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This is cleanup after initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts.c | 5 ++++-
init/do_mounts.h | 6 ------
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 5c407ca54063..60ba8a633d32 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -366,7 +366,10 @@ static int __init mount_nodev_root(char *root_device_name)
#ifdef CONFIG_BLOCK
static void __init mount_block_root(char *root_device_name)
{
- int err = create_dev("/dev/root", ROOT_DEV);
+ int err;
+
+ init_unlink("/dev/root");
+ err = init_mknod("/dev/root", S_IFBLK | 0600, new_encode_dev(ROOT_DEV));
if (err < 0)
pr_emerg("Failed to create /dev/root: %d\n", err);
diff --git a/init/do_mounts.h b/init/do_mounts.h
index 6c7a535e71ce..f3df9d697304 100644
--- a/init/do_mounts.h
+++ b/init/do_mounts.h
@@ -16,12 +16,6 @@ void mount_root_generic(char *name, char *pretty_name, int flags);
void mount_root(char *root_device_name);
extern int root_mountflags;
-static inline __init int create_dev(char *name, dev_t dev)
-{
- init_unlink(name);
- return init_mknod(name, S_IFBLK | 0600, new_encode_dev(dev));
-}
-
/* Ensure that async file closing finished to prevent spurious errors. */
static inline void init_flush_fput(void)
{
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 35/62] init: make mount_root_generic static
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This is cleanup after initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts.c | 2 +-
init/do_mounts.h | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 60ba8a633d32..c722351c991f 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -174,7 +174,7 @@ static int __init do_mount_root(const char *name, const char *fs,
return ret;
}
-void __init mount_root_generic(char *name, char *pretty_name, int flags)
+static void __init mount_root_generic(char *name, char *pretty_name, int flags)
{
struct page *page = alloc_page(GFP_KERNEL);
char *fs_names = page_address(page);
diff --git a/init/do_mounts.h b/init/do_mounts.h
index f3df9d697304..f291c30f7407 100644
--- a/init/do_mounts.h
+++ b/init/do_mounts.h
@@ -12,7 +12,6 @@
#include <linux/task_work.h>
#include <linux/file.h>
-void mount_root_generic(char *name, char *pretty_name, int flags);
void mount_root(char *root_device_name);
extern int root_mountflags;
--
2.47.2
^ permalink raw reply related
* [PATCH RESEND 36/62] init: make mount_root static
From: Askar Safin @ 2025-09-13 0:38 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: Linus Torvalds, Greg Kroah-Hartman, Christian Brauner, Al Viro,
Jan Kara, Christoph Hellwig, Jens Axboe, Andy Shevchenko,
Aleksa Sarai, Thomas Weißschuh, Julian Stecklina, Gao Xiang,
Art Nikpal, Andrew Morton, Eric Curtin, Alexander Graf,
Rob Landley, Lennart Poettering, linux-arch, linux-alpha,
linux-snps-arc, linux-arm-kernel, linux-csky, linux-hexagon,
loongarch, linux-m68k, linux-mips, linux-openrisc, linux-parisc,
linuxppc-dev, linux-riscv, linux-s390, linux-sh, sparclinux,
linux-um, x86, Ingo Molnar, linux-block, initramfs, linux-api,
linux-doc, linux-efi, linux-ext4, Theodore Y . Ts'o,
linux-acpi, Michal Simek, devicetree, Luis Chamberlain, Kees Cook,
Thorsten Blum, Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-1-safinaskar@gmail.com>
This is cleanup after initrd removal
Signed-off-by: Askar Safin <safinaskar@gmail.com>
---
init/do_mounts.c | 2 +-
init/do_mounts.h | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index c722351c991f..7ec5ee5a5c19 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -381,7 +381,7 @@ static inline void mount_block_root(char *root_device_name)
}
#endif /* CONFIG_BLOCK */
-void __init mount_root(char *root_device_name)
+static void __init mount_root(char *root_device_name)
{
switch (ROOT_DEV) {
case Root_NFS:
diff --git a/init/do_mounts.h b/init/do_mounts.h
index f291c30f7407..90422fb07c02 100644
--- a/init/do_mounts.h
+++ b/init/do_mounts.h
@@ -12,7 +12,6 @@
#include <linux/task_work.h>
#include <linux/file.h>
-void mount_root(char *root_device_name);
extern int root_mountflags;
/* Ensure that async file closing finished to prevent spurious errors. */
--
2.47.2
^ permalink raw reply related
* Re: [PATCH RESEND 28/62] init: alpha, arc, arm, arm64, csky, m68k, microblaze, mips, nios2, openrisc, parisc, powerpc, s390, sh, sparc, um, x86, xtensa: rename initrd_{start,end} to virt_external_initramfs_{start,end}
From: Borislav Petkov @ 2025-09-13 5:48 UTC (permalink / raw)
To: Askar Safin
Cc: linux-fsdevel, linux-kernel, Linus Torvalds, Greg Kroah-Hartman,
Christian Brauner, Al Viro, Jan Kara, Christoph Hellwig,
Jens Axboe, Andy Shevchenko, Aleksa Sarai, Thomas Weißschuh,
Julian Stecklina, Gao Xiang, Art Nikpal, Andrew Morton,
Eric Curtin, Alexander Graf, Rob Landley, Lennart Poettering,
linux-arch, linux-alpha, linux-snps-arc, linux-arm-kernel,
linux-csky, linux-hexagon, loongarch, linux-m68k, linux-mips,
linux-openrisc, linux-parisc, linuxppc-dev, linux-riscv,
linux-s390, linux-sh, sparclinux, linux-um, x86, Ingo Molnar,
linux-block, initramfs, linux-api, linux-doc, linux-efi,
linux-ext4, Theodore Y . Ts'o, linux-acpi, Michal Simek,
devicetree, Luis Chamberlain, Kees Cook, Thorsten Blum,
Heiko Carstens, patches
In-Reply-To: <20250913003842.41944-29-safinaskar@gmail.com>
On Sat, Sep 13, 2025 at 12:38:07AM +0000, Askar Safin wrote:
> Rename initrd_start to virt_external_initramfs_start and
> initrd_end to virt_external_initramfs_end.
"virt" as in "virtualization"?
That's not confusing at all... :-\
And "external" means what?
> They refer to initramfs, not to initrd
Why not simply initramfs_{start,end} if they belong to it?
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox