diff options
author | Richard Henderson <rth@twiddle.net> | 2011-04-28 10:29:27 -0400 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2013-11-16 19:33:12 -0500 |
commit | 994dcf7055df88623d25f3593b931a018a76b502 (patch) | |
tree | c3708ed5b2558e82b88ef15e533797a400b361e5 /arch/alpha/kernel/setup.c | |
parent | a47e5bb5764f029f989a182b0dd2d4cce69f8b14 (diff) |
alpha: Notice if we're being run under QEMU
When building a generic kernel, do a run-time check on the serial
number, like we do for MILO. When building a custom kernel, make
this a configure-time check.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'arch/alpha/kernel/setup.c')
-rw-r--r-- | arch/alpha/kernel/setup.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c index 9e3107cc5ebb..c38d6a1b9066 100644 --- a/arch/alpha/kernel/setup.c +++ b/arch/alpha/kernel/setup.c | |||
@@ -115,10 +115,17 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE; | |||
115 | 115 | ||
116 | #ifdef CONFIG_ALPHA_GENERIC | 116 | #ifdef CONFIG_ALPHA_GENERIC |
117 | struct alpha_machine_vector alpha_mv; | 117 | struct alpha_machine_vector alpha_mv; |
118 | #endif | ||
119 | |||
120 | #ifndef alpha_using_srm | ||
118 | int alpha_using_srm; | 121 | int alpha_using_srm; |
119 | EXPORT_SYMBOL(alpha_using_srm); | 122 | EXPORT_SYMBOL(alpha_using_srm); |
120 | #endif | 123 | #endif |
121 | 124 | ||
125 | #ifndef alpha_using_qemu | ||
126 | int alpha_using_qemu; | ||
127 | #endif | ||
128 | |||
122 | static struct alpha_machine_vector *get_sysvec(unsigned long, unsigned long, | 129 | static struct alpha_machine_vector *get_sysvec(unsigned long, unsigned long, |
123 | unsigned long); | 130 | unsigned long); |
124 | static struct alpha_machine_vector *get_sysvec_byname(const char *); | 131 | static struct alpha_machine_vector *get_sysvec_byname(const char *); |
@@ -529,11 +536,15 @@ setup_arch(char **cmdline_p) | |||
529 | atomic_notifier_chain_register(&panic_notifier_list, | 536 | atomic_notifier_chain_register(&panic_notifier_list, |
530 | &alpha_panic_block); | 537 | &alpha_panic_block); |
531 | 538 | ||
532 | #ifdef CONFIG_ALPHA_GENERIC | 539 | #ifndef alpha_using_srm |
533 | /* Assume that we've booted from SRM if we haven't booted from MILO. | 540 | /* Assume that we've booted from SRM if we haven't booted from MILO. |
534 | Detect the later by looking for "MILO" in the system serial nr. */ | 541 | Detect the later by looking for "MILO" in the system serial nr. */ |
535 | alpha_using_srm = strncmp((const char *)hwrpb->ssn, "MILO", 4) != 0; | 542 | alpha_using_srm = strncmp((const char *)hwrpb->ssn, "MILO", 4) != 0; |
536 | #endif | 543 | #endif |
544 | #ifndef alpha_using_qemu | ||
545 | /* Similarly, look for QEMU. */ | ||
546 | alpha_using_qemu = strstr((const char *)hwrpb->ssn, "QEMU") != 0; | ||
547 | #endif | ||
537 | 548 | ||
538 | /* If we are using SRM, we want to allow callbacks | 549 | /* If we are using SRM, we want to allow callbacks |
539 | as early as possible, so do this NOW, and then | 550 | as early as possible, so do this NOW, and then |