diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2015-05-06 10:13:31 -0400 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2015-05-28 07:23:11 -0400 |
commit | 5882bfef6327093bff63569be19795170ff71e5f (patch) | |
tree | 11aa43fab514a95bc53dd063f3f02bee90d7ff17 /arch/arm64/kernel/setup.c | |
parent | 81e863c3a28e69fd60411bde9f779b0f8ad0212a (diff) |
arm,arm64/xen: move Xen initialization earlier
Currently, Xen is initialized/discovered in an initcall. This doesn't
allow us to support earlyprintk or choosing the preferred console when
running on Xen.
The current function xen_guest_init is now split in 2 parts:
- xen_early_init: Check if there is a Xen node in the device tree
and setup domain type
- xen_guest_init: Retrieve the information from the device node and
initialize Xen (grant table, shared page...)
The former is called in setup_arch, while the latter is an initcall.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/setup.c')
-rw-r--r-- | arch/arm64/kernel/setup.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 74753132c3ac..1b36ba9b73ac 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c | |||
@@ -64,6 +64,7 @@ | |||
64 | #include <asm/psci.h> | 64 | #include <asm/psci.h> |
65 | #include <asm/efi.h> | 65 | #include <asm/efi.h> |
66 | #include <asm/virt.h> | 66 | #include <asm/virt.h> |
67 | #include <asm/xen/hypervisor.h> | ||
67 | 68 | ||
68 | unsigned long elf_hwcap __read_mostly; | 69 | unsigned long elf_hwcap __read_mostly; |
69 | EXPORT_SYMBOL_GPL(elf_hwcap); | 70 | EXPORT_SYMBOL_GPL(elf_hwcap); |
@@ -416,6 +417,7 @@ void __init setup_arch(char **cmdline_p) | |||
416 | psci_acpi_init(); | 417 | psci_acpi_init(); |
417 | acpi_init_cpus(); | 418 | acpi_init_cpus(); |
418 | } | 419 | } |
420 | xen_early_init(); | ||
419 | 421 | ||
420 | #ifdef CONFIG_SMP | 422 | #ifdef CONFIG_SMP |
421 | smp_build_mpidr_hash(); | 423 | smp_build_mpidr_hash(); |