|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC v1 5/8] x86/init: move ebda reservations into linker table
On Tue, Dec 15, 2015 at 02:16:34PM -0800, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>
>
> This lets us annotate its requirements specifically for
> PC and lguest subarchitectures. While at it since head.c
> just has ebda data rename it. Since we're using linker tables
> and both x86 32-bit and 64-bit have them we don't need
> to declare a call for this separately. This lets us
> also keep this declared static now.
>
> Since we're using linker tables and have support to annotate
> subarchitecture do that instead. pv_legacy() is incorrect as
> its really only for legacy PV guests. There's no need for
> pv_legacy() check anymore now.
<nods>
>
> Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
> ---
> arch/x86/include/asm/bios_ebda.h | 2 --
> arch/x86/kernel/Makefile | 2 +-
> arch/x86/kernel/{head.c => ebda.c} | 6 +++---
> arch/x86/kernel/head32.c | 2 --
> arch/x86/kernel/head64.c | 2 --
> 5 files changed, 4 insertions(+), 10 deletions(-)
> rename arch/x86/kernel/{head.c => ebda.c} (94%)
>
> diff --git a/arch/x86/include/asm/bios_ebda.h
> b/arch/x86/include/asm/bios_ebda.h
> index aa6a3170ab5a..e63347eb3804 100644
> --- a/arch/x86/include/asm/bios_ebda.h
> +++ b/arch/x86/include/asm/bios_ebda.h
> @@ -38,8 +38,6 @@ static inline unsigned int get_bios_ebda_length(void)
> return length;
> }
>
> -void reserve_ebda_region(void);
> -
> #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
> /*
> * This is obviously not a great place for this, but we want to be
> diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
> index be167a0a5e2c..e7a43f08bccc 100644
> --- a/arch/x86/kernel/Makefile
> +++ b/arch/x86/kernel/Makefile
> @@ -2,7 +2,7 @@
> # Makefile for the linux kernel.
> #
>
> -extra-y := head_$(BITS).o head$(BITS).o head.o vmlinux.lds
> +extra-y := head_$(BITS).o head$(BITS).o ebda.o vmlinux.lds
>
> CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE)
>
> diff --git a/arch/x86/kernel/head.c b/arch/x86/kernel/ebda.c
> similarity index 94%
> rename from arch/x86/kernel/head.c
> rename to arch/x86/kernel/ebda.c
> index 279fad7288f8..defc2f07a80b 100644
> --- a/arch/x86/kernel/head.c
> +++ b/arch/x86/kernel/ebda.c
> @@ -4,6 +4,7 @@
>
> #include <asm/setup.h>
> #include <asm/bios_ebda.h>
> +#include <asm/x86_init.h>
>
> /*
> * The BIOS places the EBDA/XBDA at the top of conventional
> @@ -26,7 +27,7 @@
> #define LOWMEM_CAP 0x9f000U /* Absolute maximum */
> #define INSANE_CUTOFF 0x20000U /* Less than this =
> insane */
>
> -void __init reserve_ebda_region(void)
> +static void __init reserve_ebda_region(void)
> {
> unsigned int lowmem, ebda_addr;
>
> @@ -38,8 +39,6 @@ void __init reserve_ebda_region(void)
> * that the paravirt case can handle memory setup
> * correctly, without our help.
> */
> - if (paravirt_legacy())
> - return;
>
> /* end of low (conventional) memory */
> lowmem = *(unsigned short *)__va(BIOS_LOWMEM_KILOBYTES);
> @@ -69,3 +68,4 @@ void __init reserve_ebda_region(void)
> /* reserve all memory between lowmem and the 1MB mark */
> memblock_reserve(lowmem, 0x100000 - lowmem);
> }
> +x86_init_early_pc_simple(reserve_ebda_region);
> diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
> index d93f3e42e61b..768fa3888066 100644
> --- a/arch/x86/kernel/head32.c
> +++ b/arch/x86/kernel/head32.c
> @@ -26,8 +26,6 @@ static void __init i386_default_early_setup(void)
> /* Initialize 32bit specific setup functions */
> x86_init.resources.reserve_resources = i386_reserve_resources;
> x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc;
> -
> - reserve_ebda_region();
> }
>
> asmlinkage __visible void __init i386_start_kernel(void)
> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
> index f83263a8d0ed..c913b7eb5056 100644
> --- a/arch/x86/kernel/head64.c
> +++ b/arch/x86/kernel/head64.c
> @@ -194,7 +194,5 @@ void __init x86_64_start_reservations(char
> *real_mode_data)
> x86_init_fn_init_tables();
> x86_init_fn_early_init();
>
> - reserve_ebda_region();
> -
Nice!
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> start_kernel();
> }
> --
> 2.6.2
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |