fix 335-mips-kexec patch for all 3+ kernels
SVN-Revision: 31344
This commit is contained in:
parent
e640bc8ca4
commit
2e641b13c0
4 changed files with 16 additions and 16 deletions
|
@ -9,7 +9,7 @@
|
||||||
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
||||||
+
|
+
|
||||||
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
||||||
+int kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
+char *kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
||||||
+
|
+
|
||||||
+static void
|
+static void
|
||||||
+machine_kexec_print_args(void)
|
+machine_kexec_print_args(void)
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
||||||
+ size = min(size, bufsz);
|
+ size = min(size, bufsz);
|
||||||
+ if (size < bufsz)
|
+ if (size < bufsz)
|
||||||
+ pr_warn("kexec command line truncated to %d bytes\n", size);
|
+ pr_warn("kexec command line truncated to %zd bytes\n", size);
|
||||||
+
|
+
|
||||||
+ /* Copy to kernel space */
|
+ /* Copy to kernel space */
|
||||||
+ copy_from_user(kexec_argv_buf, buf, size);
|
+ copy_from_user(kexec_argv_buf, buf, size);
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
+ continue;
|
+ continue;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ kexec_argv[argc++] = (int) ptr;
|
+ kexec_argv[argc++] = ptr;
|
||||||
+ ptr = strchr(ptr, ' ');
|
+ ptr = strchr(ptr, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
|
|
||||||
- return 0;
|
- return 0;
|
||||||
+ kexec_args[0] = argc;
|
+ kexec_args[0] = argc;
|
||||||
+ kexec_args[1] = (int) kexec_argv;
|
+ kexec_args[1] = (unsigned long)kexec_argv;
|
||||||
+ kexec_args[2] = 0;
|
+ kexec_args[2] = 0;
|
||||||
+ kexec_args[3] = 0;
|
+ kexec_args[3] = 0;
|
||||||
+
|
+
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
||||||
+
|
+
|
||||||
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
||||||
+int kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
+char *kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
||||||
+
|
+
|
||||||
+static void
|
+static void
|
||||||
+machine_kexec_print_args(void)
|
+machine_kexec_print_args(void)
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
||||||
+ size = min(size, bufsz);
|
+ size = min(size, bufsz);
|
||||||
+ if (size < bufsz)
|
+ if (size < bufsz)
|
||||||
+ pr_warn("kexec command line truncated to %d bytes\n", size);
|
+ pr_warn("kexec command line truncated to %zd bytes\n", size);
|
||||||
+
|
+
|
||||||
+ /* Copy to kernel space */
|
+ /* Copy to kernel space */
|
||||||
+ copy_from_user(kexec_argv_buf, buf, size);
|
+ copy_from_user(kexec_argv_buf, buf, size);
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
+ continue;
|
+ continue;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ kexec_argv[argc++] = (int) ptr;
|
+ kexec_argv[argc++] = ptr;
|
||||||
+ ptr = strchr(ptr, ' ');
|
+ ptr = strchr(ptr, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
|
|
||||||
- return 0;
|
- return 0;
|
||||||
+ kexec_args[0] = argc;
|
+ kexec_args[0] = argc;
|
||||||
+ kexec_args[1] = (int) kexec_argv;
|
+ kexec_args[1] = (unsigned long)kexec_argv;
|
||||||
+ kexec_args[2] = 0;
|
+ kexec_args[2] = 0;
|
||||||
+ kexec_args[3] = 0;
|
+ kexec_args[3] = 0;
|
||||||
+
|
+
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
||||||
+
|
+
|
||||||
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
||||||
+int kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
+char *kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
||||||
+
|
+
|
||||||
+static void
|
+static void
|
||||||
+machine_kexec_print_args(void)
|
+machine_kexec_print_args(void)
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
||||||
+ size = min(size, bufsz);
|
+ size = min(size, bufsz);
|
||||||
+ if (size < bufsz)
|
+ if (size < bufsz)
|
||||||
+ pr_warn("kexec command line truncated to %d bytes\n", size);
|
+ pr_warn("kexec command line truncated to %zd bytes\n", size);
|
||||||
+
|
+
|
||||||
+ /* Copy to kernel space */
|
+ /* Copy to kernel space */
|
||||||
+ copy_from_user(kexec_argv_buf, buf, size);
|
+ copy_from_user(kexec_argv_buf, buf, size);
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
+ continue;
|
+ continue;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ kexec_argv[argc++] = (int) ptr;
|
+ kexec_argv[argc++] = ptr;
|
||||||
+ ptr = strchr(ptr, ' ');
|
+ ptr = strchr(ptr, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
|
|
||||||
- return 0;
|
- return 0;
|
||||||
+ kexec_args[0] = argc;
|
+ kexec_args[0] = argc;
|
||||||
+ kexec_args[1] = (int) kexec_argv;
|
+ kexec_args[1] = (unsigned long)kexec_argv;
|
||||||
+ kexec_args[2] = 0;
|
+ kexec_args[2] = 0;
|
||||||
+ kexec_args[3] = 0;
|
+ kexec_args[3] = 0;
|
||||||
+
|
+
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
+#define KEXEC_MIPS_ARGV_MAX_ARGS (COMMAND_LINE_SIZE / 15)
|
||||||
+
|
+
|
||||||
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
+char kexec_argv_buf[KEXEC_MIPS_ARGV_BUF_SIZE] __kexec;
|
||||||
+int kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
+char *kexec_argv[KEXEC_MIPS_ARGV_MAX_ARGS] __kexec;
|
||||||
+
|
+
|
||||||
+static void
|
+static void
|
||||||
+machine_kexec_print_args(void)
|
+machine_kexec_print_args(void)
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
+ size = KEXEC_MIPS_ARGV_BUF_SIZE - 1;
|
||||||
+ size = min(size, bufsz);
|
+ size = min(size, bufsz);
|
||||||
+ if (size < bufsz)
|
+ if (size < bufsz)
|
||||||
+ pr_warn("kexec command line truncated to %d bytes\n", size);
|
+ pr_warn("kexec command line truncated to %zd bytes\n", size);
|
||||||
+
|
+
|
||||||
+ /* Copy to kernel space */
|
+ /* Copy to kernel space */
|
||||||
+ copy_from_user(kexec_argv_buf, buf, size);
|
+ copy_from_user(kexec_argv_buf, buf, size);
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
+ continue;
|
+ continue;
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ kexec_argv[argc++] = (int) ptr;
|
+ kexec_argv[argc++] = ptr;
|
||||||
+ ptr = strchr(ptr, ' ');
|
+ ptr = strchr(ptr, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
|
|
||||||
- return 0;
|
- return 0;
|
||||||
+ kexec_args[0] = argc;
|
+ kexec_args[0] = argc;
|
||||||
+ kexec_args[1] = (int) kexec_argv;
|
+ kexec_args[1] = (unsigned long)kexec_argv;
|
||||||
+ kexec_args[2] = 0;
|
+ kexec_args[2] = 0;
|
||||||
+ kexec_args[3] = 0;
|
+ kexec_args[3] = 0;
|
||||||
+
|
+
|
||||||
|
|
Loading…
Reference in a new issue