summaryrefslogtreecommitdiff
path: root/kexec/kexec.c
diff options
context:
space:
mode:
authorJamey Sharp <jamey@thetovacompany.com>2008-05-15 22:42:10 -0700
committerSimon Horman <horms@verge.net.au>2008-05-21 16:29:56 +1000
commit7c3109cb6c5e1834bb3b6f788c9dcaa0ddbdf090 (patch)
treeafe65be035cbb3bc3377b5b9113d3d91e6e49b41 /kexec/kexec.c
parent01cc79edacf626472e3d505b60ac86f7150efa84 (diff)
Factor uname-based native architecture detection into a common function.
This code was copy-pasted into every architecture and was basically identical. Besides producing a nice net reduction in code, this factors a portability challenge into a single function that can be easily replaced at build-time. Signed-off-by: Jamey Sharp <jamey@thetovacompany.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/kexec.c')
-rw-r--r--kexec/kexec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kexec/kexec.c b/kexec/kexec.c
index bbfeac3..096fa4f 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -589,6 +589,7 @@ static int my_load(const char *type, int fileind, int argc, char **argv,
int i = 0;
int result;
struct kexec_info info;
+ long native_arch;
int guess_only = 0;
memset(&info, 0, sizeof(info));
@@ -656,6 +657,11 @@ static int my_load(const char *type, int fileind, int argc, char **argv,
return -1;
}
/* If we are not in native mode setup an appropriate trampoline */
+ native_arch = physical_arch();
+ if (native_arch < 0) {
+ return -1;
+ }
+ info.kexec_flags |= native_arch;
if (arch_compat_trampoline(&info) < 0) {
return -1;
}