| From d006e95b5561f708d0385e9677ffe2c46f2ae345 Mon Sep 17 00:00:00 2001 |
| From: Helge Deller <deller@gmx.de> |
| Date: Tue, 2 Apr 2019 12:13:27 +0200 |
| Subject: parisc: Detect QEMU earlier in boot process |
| |
| From: Helge Deller <deller@gmx.de> |
| |
| commit d006e95b5561f708d0385e9677ffe2c46f2ae345 upstream. |
| |
| While adding LASI support to QEMU, I noticed that the QEMU detection in |
| the kernel happens much too late. For example, when a LASI chip is found |
| by the kernel, it registers the LASI LED driver as well. But when we |
| run on QEMU it makes sense to avoid spending unnecessary CPU cycles, so |
| we need to access the running_on_QEMU flag earlier than before. |
| |
| This patch now makes the QEMU detection the fist task of the Linux |
| kernel by moving it to where the kernel enters the C-coding. |
| |
| Fixes: 310d82784fb4 ("parisc: qemu idle sleep support") |
| Signed-off-by: Helge Deller <deller@gmx.de> |
| Cc: stable@vger.kernel.org # v4.14+ |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/parisc/kernel/process.c | 6 ------ |
| arch/parisc/kernel/setup.c | 3 +++ |
| 2 files changed, 3 insertions(+), 6 deletions(-) |
| |
| --- a/arch/parisc/kernel/process.c |
| +++ b/arch/parisc/kernel/process.c |
| @@ -210,12 +210,6 @@ void __cpuidle arch_cpu_idle(void) |
| |
| static int __init parisc_idle_init(void) |
| { |
| - const char *marker; |
| - |
| - /* check QEMU/SeaBIOS marker in PAGE0 */ |
| - marker = (char *) &PAGE0->pad0; |
| - running_on_qemu = (memcmp(marker, "SeaBIOS", 8) == 0); |
| - |
| if (!running_on_qemu) |
| cpu_idle_poll_ctrl(1); |
| |
| --- a/arch/parisc/kernel/setup.c |
| +++ b/arch/parisc/kernel/setup.c |
| @@ -396,6 +396,9 @@ void __init start_parisc(void) |
| int ret, cpunum; |
| struct pdc_coproc_cfg coproc_cfg; |
| |
| + /* check QEMU/SeaBIOS marker in PAGE0 */ |
| + running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0); |
| + |
| cpunum = smp_processor_id(); |
| |
| init_cpu_topology(); |