lkml.org 
[lkml]   [2009]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/1] intel_txt: to fix build errors of CONFIG_ACPI_SLEEP

* H. Peter Anvin <hpa@zytor.com> wrote:

> On 08/12/2009 11:46 PM, Ingo Molnar wrote:
> > * Wang, Shane <shane.wang@intel.com> wrote:
> >
> >> Signed-off-by: Shane Wang <shane.wang@intel.com>
> >>
> >> 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.

no argument about that. But i'd rather have some extra dependency
on a Kconfig than ugly #ifdefs.

and while it's certainly not the same kind of dependency as
'depends on ACPI', it's not really a false dependency either, it's
just a different technical dependency: 'the ACPI_SLEEP interfaces
suck a bit and we could only offer !ACPI_SLEEP support by uglifying
the .c code - so we'll opt for always having it'.

> However, I think the actual code to set the sections is ugly as
> hell, which is probably why the #ifdef sticks in your eyes.

Yeah.

> 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.

it's better, but why not put these:

> +#ifdef CONFIG_ACPI_SLEEP
> tboot->acpi_sinfo.kernel_s3_resume_vector = acpi_wakeup_address;
> +#endif

into a helper inline in a header file and let the #ifdefs be there,
or something like that. That way the .c file stays readable.

I.e. we can cleanly support !ACPI_SLEEP case too, because it's
encapsulated and abstracted away.

Ingo


\
 
 \ /
  Last update: 2009-08-13 17:49    [W:0.096 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site