diff options
Diffstat (limited to 'package/kexec/kexec-tools-arm.patch')
-rw-r--r-- | package/kexec/kexec-tools-arm.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/package/kexec/kexec-tools-arm.patch b/package/kexec/kexec-tools-arm.patch index 2659dd770..6765db7af 100644 --- a/package/kexec/kexec-tools-arm.patch +++ b/package/kexec/kexec-tools-arm.patch @@ -389,3 +389,78 @@ diff -uNr kexec-tools-1.101.orig/purgatory/arch/arm/include/stdint.h kexec-tools +typedef signed long long int64_t; + +#endif /* STDINT_H */ +diff -ur kexec-tools-1.101/kexec/arch/arm/kexec-arm.c kexec-tools-1.101.patched/kexec/arch/arm/kexec-arm.c +--- kexec-tools-1.101.orig/kexec/arch/arm/kexec-arm.c 2006-12-20 16:41:12.000000000 +0100 ++++ kexec-tools-1.101/kexec/arch/arm/kexec-arm.c 2006-12-20 16:40:19.000000000 +0100 +@@ -105,7 +105,7 @@ + return 0; + } + +-int arch_compat_trampoline(struct kexec_info *info, unsigned long *flags) ++int arch_compat_trampoline(struct kexec_info *info) + { + int result; + struct utsname utsname; +@@ -115,11 +115,8 @@ + strerror(errno)); + return -1; + } +- if (strncmp(utsname.machine, "arm",3) == 0) ++ if (strncmp(utsname.machine, "arm",3) != 0) + { +- *flags |= KEXEC_ARCH_ARM; +- } +- else { + fprintf(stderr, "Unsupported machine type: %s\n", + utsname.machine); + return -1; +diff -ur kexec-tools-1.101/kexec/kexec.c kexec-tools-1.101.patched/kexec/kexec.c +--- kexec-tools-1.101.orig/kexec/kexec.c 2006-09-20 04:39:38.000000000 +0200 ++++ kexec-tools-1.101/kexec/kexec.c 2006-12-20 16:39:10.000000000 +0100 +@@ -532,8 +532,7 @@ + kernel_buf, kernel_size); + #endif + +- if (get_memory_ranges(&memory_range, &memory_ranges, +- info.kexec_flags) < 0) { ++ if (get_memory_ranges(&memory_range, &memory_ranges) < 0) { + fprintf(stderr, "Could not get memory layout\n"); + return -1; + } +diff -ur kexec-tools-1.101/kexec/kexec.h kexec-tools-1.101.patched/kexec/kexec.h +--- kexec-tools-1.101.orig/kexec/kexec.h 2006-09-20 04:39:38.000000000 +0200 ++++ kexec-tools-1.101/kexec/kexec.h 2006-12-20 16:40:47.000000000 +0100 +@@ -119,8 +119,7 @@ + }; + + void usage(void); +-int get_memory_ranges(struct memory_range **range, int *ranges, +- unsigned long kexec_flags); ++int get_memory_ranges(struct memory_range **range, int *ranges); + int valid_memory_range(unsigned long sstart, unsigned long send); + int valid_memory_segment(struct kexec_segment *segment); + void print_segments(FILE *file, struct kexec_info *info); +diff -ur kexec-tools-1.101.orig/kexec/kexec.c kexec-tools-1.101/kexec/kexec.c +--- kexec-tools-1.101.orig/kexec/kexec.c 2006-12-20 17:04:59.000000000 +0100 ++++ kexec-tools-1.101/kexec/kexec.c 2006-12-20 17:05:33.000000000 +0100 +@@ -630,16 +630,11 @@ + static int my_shutdown(void) + { + char *args[8]; +- int i = 0; + +- args[i++] = "shutdown"; +- args[i++] = "-r"; +- args[i++] = "now"; +- args[i++] = NULL; +- +- execv("/sbin/shutdown", args); +- execv("/etc/shutdown", args); +- execv("/bin/shutdown", args); ++ args[0] = "reboot"; ++ args[1] = NULL; ++ ++ execv("/sbin/reboot", args); + + perror("shutdown"); + return -1; |