2011-06-09 14:33:09

by Matthew Garrett

[permalink] [raw]
Subject: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

EFI doesn't provide any guarantees that any given address will be free,
so the bootloader must have the freedom to position the kernel
appropriately. Make CONFIG_EFI select CONFIG_RELOCATABLE in order to
ensure that this constraint is satisfiable.

Signed-off-by: Matthew Garrett <[email protected]>
---
arch/x86/Kconfig | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index da34972..580cd31 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1454,6 +1454,7 @@ config ARCH_USES_PG_UNCACHED
config EFI
bool "EFI runtime service support"
depends on ACPI
+ select RELOCATABLE
---help---
This enables the kernel to use EFI runtime services that are
available (such as the EFI variable services).
--
1.7.5.2


2011-06-09 14:34:32

by Peter Jones

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On 06/09/2011 10:32 AM, Matthew Garrett wrote:
> EFI doesn't provide any guarantees that any given address will be free,
> so the bootloader must have the freedom to position the kernel
> appropriately. Make CONFIG_EFI select CONFIG_RELOCATABLE in order to
> ensure that this constraint is satisfiable.
>
> Signed-off-by: Matthew Garrett<[email protected]>

Yeah, this is a requirement by the UEFI spec.

Signed-off-by: Peter Jones <[email protected]>

> ---
> arch/x86/Kconfig | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index da34972..580cd31 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -1454,6 +1454,7 @@ config ARCH_USES_PG_UNCACHED
> config EFI
> bool "EFI runtime service support"
> depends on ACPI
> + select RELOCATABLE
> ---help---
> This enables the kernel to use EFI runtime services that are
> available (such as the EFI variable services).


--
Peter

All parts should go together without forcing. You must remember that
the parts you are reassembling were disassembled by you. Therefore,
if you can't get them together again, there must be a reason. By all
means, do not use a hammer.
-- IBM maintenance manual, 1925

01234567890123456789012345678901234567890123456789012345678901234567890123456789

2011-06-09 14:37:35

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On 06/09/2011 07:32 AM, Matthew Garrett wrote:
> EFI doesn't provide any guarantees that any given address will be free,
> so the bootloader must have the freedom to position the kernel
> appropriately. Make CONFIG_EFI select CONFIG_RELOCATABLE in order to
> ensure that this constraint is satisfiable.
>
> Signed-off-by: Matthew Garrett <[email protected]>
> ---
> arch/x86/Kconfig | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index da34972..580cd31 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -1454,6 +1454,7 @@ config ARCH_USES_PG_UNCACHED
> config EFI
> bool "EFI runtime service support"
> depends on ACPI
> + select RELOCATABLE
> ---help---
> This enables the kernel to use EFI runtime services that are
> available (such as the EFI variable services).

Can we make this a depends on instead of select?

-hpa

2011-06-09 14:41:22

by Peter Jones

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On 06/09/2011 10:37 AM, H. Peter Anvin wrote:
> On 06/09/2011 07:32 AM, Matthew Garrett wrote:
>> EFI doesn't provide any guarantees that any given address will be free,
>> so the bootloader must have the freedom to position the kernel
>> appropriately. Make CONFIG_EFI select CONFIG_RELOCATABLE in order to
>> ensure that this constraint is satisfiable.
>>
>> Signed-off-by: Matthew Garrett<[email protected]>
>> ---
>> arch/x86/Kconfig | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index da34972..580cd31 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -1454,6 +1454,7 @@ config ARCH_USES_PG_UNCACHED
>> config EFI
>> bool "EFI runtime service support"
>> depends on ACPI
>> + select RELOCATABLE
>> ---help---
>> This enables the kernel to use EFI runtime services that are
>> available (such as the EFI variable services).
>
> Can we make this a depends on instead of select?

Seems weird to me - when you're configuring the kernel, you're more likely
to know that you want EFI than to remember that that requires relocation.

--
Peter

2011-06-09 14:47:46

by Matthew Garrett

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On Thu, Jun 09, 2011 at 07:37:31AM -0700, H. Peter Anvin wrote:
> On 06/09/2011 07:32 AM, Matthew Garrett wrote:
> > config EFI
> > bool "EFI runtime service support"
> > depends on ACPI
> > + select RELOCATABLE
> > ---help---
> > This enables the kernel to use EFI runtime services that are
> > available (such as the EFI variable services).
>
> Can we make this a depends on instead of select?

CONFIG_RELOCATABLE has no dependencies so select should be safe, and
depends means CONFIG_EFI vanishes until you turn on something that seems
entirely unrelated. I've no problem with it being depends, but this
seems friendlier.

--
Matthew Garrett | [email protected]

2011-06-09 15:23:53

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On 06/09/2011 07:41 AM, Peter Jones wrote:
>>
>> Can we make this a depends on instead of select?
>
> Seems weird to me - when you're configuring the kernel, you're more likely
> to know that you want EFI than to remember that that requires relocation.
>

Yes, but "select" is handled very poorly by Kconfig.

-hpa

2011-06-09 15:35:52

by Matthew Garrett

[permalink] [raw]
Subject: Re: [PATCH] x86: CONFIG_EFI should select CONFIG_RELOCATABLE

On Thu, Jun 09, 2011 at 08:23:48AM -0700, H. Peter Anvin wrote:
> On 06/09/2011 07:41 AM, Peter Jones wrote:
> >>
> >> Can we make this a depends on instead of select?
> >
> > Seems weird to me - when you're configuring the kernel, you're more likely
> > to know that you want EFI than to remember that that requires relocation.
> >
>
> Yes, but "select" is handled very poorly by Kconfig.

I think it's safe in this case.

--
Matthew Garrett | [email protected]