Loading package/kexec/kexec-tools-arm.patch +75 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
package/kexec/kexec-tools-arm.patch +75 −0 Original line number Diff line number Diff line Loading @@ -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;