initrd: remove support for multiple floppies
authorChristoph Hellwig <hch@lst.de>
Thu, 4 Jun 2020 08:23:14 +0000 (10:23 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 30 Jul 2020 06:22:33 +0000 (08:22 +0200)
Remove the special handling for multiple floppies in the initrd code.
No one should be using floppies for booting these days. (famous last
words..)

Includes a spelling fix from Colin Ian King <colin.king@canonical.com>.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/arm/kernel/atags_parse.c
arch/sh/kernel/setup.c
arch/sparc/kernel/setup_32.c
arch/sparc/kernel/setup_64.c
arch/x86/kernel/setup.c
include/linux/initrd.h
init/do_mounts.c
init/do_mounts.h
init/do_mounts_rd.c

index ce02f92..6c12d9f 100644 (file)
@@ -91,8 +91,6 @@ __tagtable(ATAG_VIDEOTEXT, parse_tag_videotext);
 static int __init parse_tag_ramdisk(const struct tag *tag)
 {
        rd_image_start = tag->u.ramdisk.start;
-       rd_doload = (tag->u.ramdisk.flags & 1) == 0;
-       rd_prompt = (tag->u.ramdisk.flags & 2) == 0;
 
        if (tag->u.ramdisk.size)
                rd_size = tag->u.ramdisk.size;
index 67f5a3b..4144be6 100644 (file)
@@ -290,8 +290,6 @@ void __init setup_arch(char **cmdline_p)
 
 #ifdef CONFIG_BLK_DEV_RAM
        rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((RAMDISK_FLAGS & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((RAMDISK_FLAGS & RAMDISK_LOAD_FLAG) != 0);
 #endif
 
        if (!MOUNT_ROOT_RDONLY)
index 6d07b85..eea43a1 100644 (file)
@@ -353,8 +353,6 @@ void __init setup_arch(char **cmdline_p)
        ROOT_DEV = old_decode_dev(root_dev);
 #ifdef CONFIG_BLK_DEV_RAM
        rd_image_start = ram_flags & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((ram_flags & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((ram_flags & RAMDISK_LOAD_FLAG) != 0);     
 #endif
 
        prom_setsync(prom_sync_me);
index f765fda..d872441 100644 (file)
@@ -659,8 +659,6 @@ void __init setup_arch(char **cmdline_p)
        ROOT_DEV = old_decode_dev(root_dev);
 #ifdef CONFIG_BLK_DEV_RAM
        rd_image_start = ram_flags & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((ram_flags & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((ram_flags & RAMDISK_LOAD_FLAG) != 0);
 #endif
 
        task_thread_info(&init_task)->kregs = &fake_swapper_regs;
index a3767e7..b9a68d8 100644 (file)
@@ -870,8 +870,6 @@ void __init setup_arch(char **cmdline_p)
 
 #ifdef CONFIG_BLK_DEV_RAM
        rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK;
-       rd_prompt = ((boot_params.hdr.ram_size & RAMDISK_PROMPT_FLAG) != 0);
-       rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0);
 #endif
 #ifdef CONFIG_EFI
        if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,
index aa59143..8db6f8c 100644 (file)
@@ -2,12 +2,6 @@
 
 #define INITRD_MINOR 250 /* shouldn't collide with /dev/ram* too soon ... */
 
-/* 1 = load ramdisk, 0 = don't load */
-extern int rd_doload;
-
-/* 1 = prompt for ramdisk, 0 = don't prompt */
-extern int rd_prompt;
-
 /* starting block # of image */
 extern int rd_image_start;
 
index 1a4dfa1..a7f22cf 100644 (file)
@@ -28,8 +28,6 @@
 
 #include "do_mounts.h"
 
-int __initdata rd_doload;      /* 1 = load RAM disk, 0 = don't load */
-
 int root_mountflags = MS_RDONLY | MS_SILENT;
 static char * __initdata root_device_name;
 static char __initdata saved_root_name[64];
@@ -39,7 +37,7 @@ dev_t ROOT_DEV;
 
 static int __init load_ramdisk(char *str)
 {
-       rd_doload = simple_strtol(str,NULL,0) & 3;
+       pr_warn("ignoring the deprecated load_ramdisk= option\n");
        return 1;
 }
 __setup("load_ramdisk=", load_ramdisk);
@@ -553,66 +551,20 @@ static int __init mount_cifs_root(void)
 }
 #endif
 
-#if defined(CONFIG_BLK_DEV_RAM) || defined(CONFIG_BLK_DEV_FD)
-void __init change_floppy(char *fmt, ...)
-{
-       struct termios termios;
-       char buf[80];
-       char c;
-       int fd;
-       va_list args;
-       va_start(args, fmt);
-       vsprintf(buf, fmt, args);
-       va_end(args);
-       fd = ksys_open("/dev/root", O_RDWR | O_NDELAY, 0);
-       if (fd >= 0) {
-               ksys_ioctl(fd, FDEJECT, 0);
-               ksys_close(fd);
-       }
-       printk(KERN_NOTICE "VFS: Insert %s and press ENTER\n", buf);
-       fd = ksys_open("/dev/console", O_RDWR, 0);
-       if (fd >= 0) {
-               ksys_ioctl(fd, TCGETS, (long)&termios);
-               termios.c_lflag &= ~ICANON;
-               ksys_ioctl(fd, TCSETSF, (long)&termios);
-               ksys_read(fd, &c, 1);
-               termios.c_lflag |= ICANON;
-               ksys_ioctl(fd, TCSETSF, (long)&termios);
-               ksys_close(fd);
-       }
-}
-#endif
-
 void __init mount_root(void)
 {
 #ifdef CONFIG_ROOT_NFS
        if (ROOT_DEV == Root_NFS) {
-               if (mount_nfs_root())
-                       return;
-
-               printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying floppy.\n");
-               ROOT_DEV = Root_FD0;
+               if (!mount_nfs_root())
+                       printk(KERN_ERR "VFS: Unable to mount root fs via NFS.\n");
+               return;
        }
 #endif
 #ifdef CONFIG_CIFS_ROOT
        if (ROOT_DEV == Root_CIFS) {
-               if (mount_cifs_root())
-                       return;
-
-               printk(KERN_ERR "VFS: Unable to mount root fs via SMB, trying floppy.\n");
-               ROOT_DEV = Root_FD0;
-       }
-#endif
-#ifdef CONFIG_BLK_DEV_FD
-       if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) {
-               /* rd_doload is 2 for a dual initrd/ramload setup */
-               if (rd_doload==2) {
-                       if (rd_load_disk(1)) {
-                               ROOT_DEV = Root_RAM1;
-                               root_device_name = NULL;
-                       }
-               } else
-                       change_floppy("root floppy");
+               if (!mount_cifs_root())
+                       printk(KERN_ERR "VFS: Unable to mount root fs via SMB.\n");
+               return;
        }
 #endif
 #ifdef CONFIG_BLOCK
@@ -631,8 +583,6 @@ void __init mount_root(void)
  */
 void __init prepare_namespace(void)
 {
-       int is_floppy;
-
        if (root_delay) {
                printk(KERN_INFO "Waiting %d sec before mounting root device...\n",
                       root_delay);
@@ -675,11 +625,6 @@ void __init prepare_namespace(void)
                async_synchronize_full();
        }
 
-       is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR;
-
-       if (is_floppy && rd_doload && rd_load_disk(0))
-               ROOT_DEV = Root_RAM0;
-
        mount_root();
 out:
        devtmpfs_mount();
index 50d6c89..c855b3f 100644 (file)
@@ -9,7 +9,6 @@
 #include <linux/major.h>
 #include <linux/root_dev.h>
 
-void  change_floppy(char *fmt, ...);
 void  mount_block_root(char *name, int flags);
 void  mount_root(void);
 extern int root_mountflags;
index 32fb049..0a5c3eb 100644 (file)
 #include <linux/decompress/generic.h>
 
 
-int __initdata rd_prompt = 1;/* 1 = prompt for RAM disk, 0 = don't prompt */
-
 static int __init prompt_ramdisk(char *str)
 {
-       rd_prompt = simple_strtol(str,NULL,0) & 1;
+       pr_warn("ignoring the deprecated prompt_ramdisk= option\n");
        return 1;
 }
 __setup("prompt_ramdisk=", prompt_ramdisk);
@@ -178,7 +176,7 @@ int __init rd_load_image(char *from)
        int res = 0;
        int in_fd, out_fd;
        unsigned long rd_blocks, devblocks;
-       int nblocks, i, disk;
+       int nblocks, i;
        char *buf = NULL;
        unsigned short rotate = 0;
        decompress_fn decompressor = NULL;
@@ -243,21 +241,15 @@ int __init rd_load_image(char *from)
 
        printk(KERN_NOTICE "RAMDISK: Loading %dKiB [%ld disk%s] into ram disk... ",
                nblocks, ((nblocks-1)/devblocks)+1, nblocks>devblocks ? "s" : "");
-       for (i = 0, disk = 1; i < nblocks; i++) {
+       for (i = 0; i < nblocks; i++) {
                if (i && (i % devblocks == 0)) {
-                       pr_cont("done disk #%d.\n", disk++);
+                       pr_cont("done disk #1.\n");
                        rotate = 0;
                        if (ksys_close(in_fd)) {
                                printk("Error closing the disk.\n");
                                goto noclose_input;
                        }
-                       change_floppy("disk #%d", disk);
-                       in_fd = ksys_open(from, O_RDONLY, 0);
-                       if (in_fd < 0)  {
-                               printk("Error opening disk.\n");
-                               goto noclose_input;
-                       }
-                       printk("Loading disk #%d... ", disk);
+                       break;
                }
                ksys_read(in_fd, buf, BLOCK_SIZE);
                ksys_write(out_fd, buf, BLOCK_SIZE);
@@ -284,8 +276,6 @@ out:
 
 int __init rd_load_disk(int n)
 {
-       if (rd_prompt)
-               change_floppy("root floppy disk to be loaded into RAM disk");
        create_dev("/dev/root", ROOT_DEV);
        create_dev("/dev/ram", MKDEV(RAMDISK_MAJOR, n));
        return rd_load_image("/dev/root");