diff options
| -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; | 
