提交 ff7f3efb 编写于 作者: C Chris Metcalf

tile: expect new initramfs name from hypervisor file system

The current Tilera boot infrastructure now provides the initramfs
to Linux as a Tilera-hypervisor file named "initramfs", rather than
"initramfs.cpio.gz", as before.  (This makes it reasonable to use
other compression techniques than gzip on the file without having to
worry about the name causing confusion.)  Adapt to use the new name,
but also fall back to checking for the old name.

Cc'ing to stable so that older kernels will remain compatible with
newer Tilera boot infrastructure.
Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
Cc: stable@vger.kernel.org
上级 a937536b
...@@ -1004,15 +1004,8 @@ void __cpuinit setup_cpu(int boot) ...@@ -1004,15 +1004,8 @@ void __cpuinit setup_cpu(int boot)
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
/*
* Note that the kernel can potentially support other compression
* techniques than gz, though we don't do so by default. If we ever
* decide to do so we can either look for other filename extensions,
* or just allow a file with this name to be compressed with an
* arbitrary compressor (somewhat counterintuitively).
*/
static int __initdata set_initramfs_file; static int __initdata set_initramfs_file;
static char __initdata initramfs_file[128] = "initramfs.cpio.gz"; static char __initdata initramfs_file[128] = "initramfs";
static int __init setup_initramfs_file(char *str) static int __init setup_initramfs_file(char *str)
{ {
...@@ -1026,9 +1019,9 @@ static int __init setup_initramfs_file(char *str) ...@@ -1026,9 +1019,9 @@ static int __init setup_initramfs_file(char *str)
early_param("initramfs_file", setup_initramfs_file); early_param("initramfs_file", setup_initramfs_file);
/* /*
* We look for an "initramfs.cpio.gz" file in the hvfs. * We look for a file called "initramfs" in the hvfs. If there is one, we
* If there is one, we allocate some memory for it and it will be * allocate some memory for it and it will be unpacked to the initramfs.
* unpacked to the initramfs. * If it's compressed, the initd code will uncompress it first.
*/ */
static void __init load_hv_initrd(void) static void __init load_hv_initrd(void)
{ {
...@@ -1038,10 +1031,16 @@ static void __init load_hv_initrd(void) ...@@ -1038,10 +1031,16 @@ static void __init load_hv_initrd(void)
fd = hv_fs_findfile((HV_VirtAddr) initramfs_file); fd = hv_fs_findfile((HV_VirtAddr) initramfs_file);
if (fd == HV_ENOENT) { if (fd == HV_ENOENT) {
if (set_initramfs_file) if (set_initramfs_file) {
pr_warning("No such hvfs initramfs file '%s'\n", pr_warning("No such hvfs initramfs file '%s'\n",
initramfs_file); initramfs_file);
return; return;
} else {
/* Try old backwards-compatible name. */
fd = hv_fs_findfile((HV_VirtAddr)"initramfs.cpio.gz");
if (fd == HV_ENOENT)
return;
}
} }
BUG_ON(fd < 0); BUG_ON(fd < 0);
stat = hv_fs_fstat(fd); stat = hv_fs_fstat(fd);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册