mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 04:30:52 +07:00
Make sure we populate the initroot filesystem late enough
We should not initialize rootfs before all the core initializers have run. So do it as a separate stage just before starting the regular driver initializers. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
8993780a6e
commit
8d610dd52d
@ -242,6 +242,7 @@
|
||||
*(.initcall4s.init) \
|
||||
*(.initcall5.init) \
|
||||
*(.initcall5s.init) \
|
||||
*(.initcallrootfs.init) \
|
||||
*(.initcall6.init) \
|
||||
*(.initcall6s.init) \
|
||||
*(.initcall7.init) \
|
||||
|
@ -111,6 +111,7 @@ extern void setup_arch(char **);
|
||||
#define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)
|
||||
#define fs_initcall(fn) __define_initcall("5",fn,5)
|
||||
#define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)
|
||||
#define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)
|
||||
#define device_initcall(fn) __define_initcall("6",fn,6)
|
||||
#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)
|
||||
#define late_initcall(fn) __define_initcall("7",fn,7)
|
||||
|
@ -526,7 +526,7 @@ static void __init free_initrd(void)
|
||||
|
||||
#endif
|
||||
|
||||
void __init populate_rootfs(void)
|
||||
static int __init populate_rootfs(void)
|
||||
{
|
||||
char *err = unpack_to_rootfs(__initramfs_start,
|
||||
__initramfs_end - __initramfs_start, 0);
|
||||
@ -544,7 +544,7 @@ void __init populate_rootfs(void)
|
||||
unpack_to_rootfs((char *)initrd_start,
|
||||
initrd_end - initrd_start, 0);
|
||||
free_initrd();
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
printk("it isn't (%s); looks like an initrd\n", err);
|
||||
fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700);
|
||||
@ -565,4 +565,6 @@ void __init populate_rootfs(void)
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
rootfs_initcall(populate_rootfs);
|
||||
|
@ -94,7 +94,6 @@ extern void pidmap_init(void);
|
||||
extern void prio_tree_init(void);
|
||||
extern void radix_tree_init(void);
|
||||
extern void free_initmem(void);
|
||||
extern void populate_rootfs(void);
|
||||
extern void driver_init(void);
|
||||
extern void prepare_namespace(void);
|
||||
#ifdef CONFIG_ACPI
|
||||
@ -745,12 +744,6 @@ static int init(void * unused)
|
||||
|
||||
cpuset_init_smp();
|
||||
|
||||
/*
|
||||
* Do this before initcalls, because some drivers want to access
|
||||
* firmware files.
|
||||
*/
|
||||
populate_rootfs();
|
||||
|
||||
do_basic_setup();
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user