RE: [PATCH 1/1] intel_txt: to fix build errors of CONFIG_ACPI_SLEEP

From: Wang, Shane
Date: Thu Aug 13 2009 - 22:11:17 EST


I agree with hpa, considering TXT doesnot depends on acpi sleep.

However, for hpa's patch, set_mac_regions() is for S3 only. I am wondering whether we should enlarge the range of CONFIG_ACPI_SLEEP in set_mac_regions().
Certainly, for code cleanness, this patch is fine since the assignment

+#ifdef CONFIG_X86_TRAMPOLINE
/* AP trampoline code */
- tboot->mac_regions[1].start =
- PFN_PHYS(PFN_DOWN(virt_to_phys(trampoline_base)));
- tboot->mac_regions[1].size = PFN_UP(TRAMPOLINE_SIZE) << PAGE_SHIFT;
+ add_mac_region(virt_to_phys(trampoline_base), TRAMPOLINE_SIZE);
+#endif
/* kernel code + data + bss */
- tboot->mac_regions[2].start = PFN_PHYS(PFN_DOWN(virt_to_phys(&_text)));
- tboot->mac_regions[2].size = PFN_PHYS(PFN_UP(virt_to_phys(&_end))) -
- PFN_PHYS(PFN_DOWN(virt_to_phys(&_text)));
+ add_mac_region(virt_to_phys(_text), _end - _text);

takes effect but tboot->mac_regions[] will never be used without S3.

Thanks.
Shane

H. Peter Anvin wrote:
> On 08/12/2009 11:46 PM, Ingo Molnar wrote:
>> * Wang, Shane <shane.wang@xxxxxxxxx> wrote:
>>
>>> Signed-off-by: Shane Wang <shane.wang@xxxxxxxxx>
>>>
>>> diff -r 7358cf1b3090 arch/x86/kernel/tboot.c
>>> --- a/arch/x86/kernel/tboot.c Wed Aug 12 03:04:23 2009 -0700
>>> +++ b/arch/x86/kernel/tboot.c Wed Aug 12 18:06:21 2009 -0700
>>> @@ -169,6 +169,7 @@ void tboot_create_trampoline(void)
>>>
>>> static void set_mac_regions(void)
>>> {
>>> +#ifdef CONFIG_ACPI_SLEEP
>>> tboot->num_mac_regions = 3;
>>> /* S3 resume code */
>>> tboot->mac_regions[0].start =
>>> PFN_PHYS(PFN_DOWN(acpi_wakeup_address)); @@ -181,6 +182,7 @@ static
>>> void set_mac_regions(void) tboot->mac_regions[2].start =
>>> PFN_PHYS(PFN_DOWN(virt_to_phys(&_text)));
>>> tboot->mac_regions[2].size =
>>> PFN_PHYS(PFN_UP(virt_to_phys(&_end))) -
>>> PFN_PHYS(PFN_DOWN(virt_to_phys(&_text))); +#endif
>>
>> These #ifdefs are quite ugly. Why not add a 'depends on ACPI_SLEEP'
>> rule to the INTEL_TXT Kconfig section?
>
> I *strongly* disagree with that kind of false dependencies. It makes
> it seem like there is something magic going on, which invites cargo
> cult programming in the future. I also think those particular
> #ifdefs are fairly innocuous... it's not like they're hiding flow of
> control or major chunks of code.
>
> However, I think the actual code to set the sections is ugly as hell,
> which is probably why the #ifdef sticks in your eyes.
>
> Consider the attached instead patch, which abstracts some of the (way
> more complex than it should be) open-coded stuff and therefore makes
> it stick out less.
>
> -hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/