[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160407205902.GS1990@wotan.suse.de>
Date: Thu, 7 Apr 2016 22:59:02 +0200
From: "Luis R. Rodriguez" <mcgrof@...e.com>
To: Ingo Molnar <mingo@...nel.org>,
David Vrabel <david.vrabel@...rix.com>
Cc: "Luis R. Rodriguez" <mcgrof@...nel.org>, bp@...en8.de,
hpa@...or.com, tglx@...utronix.de, mingo@...hat.com,
rusty@...tcorp.com.au, x86@...nel.org,
linux-kernel@...r.kernel.org, luto@...capital.net,
boris.ostrovsky@...cle.com, david.vrabel@...rix.com,
konrad.wilk@...cle.com, xen-devel@...ts.xensource.com,
lguest@...ts.ozlabs.org,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Andrew Cooper <andrew.cooper3@...rix.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [PATCH v3 01/11] x86/boot: enumerate documentation for the x86
hardware_subarch
David, please note below the highlighted code.
On Wed, Feb 24, 2016 at 09:32:59AM +0100, Ingo Molnar wrote:
>
> * Luis R. Rodriguez <mcgrof@...nel.org> wrote:
> For hard coded platform quirks I'd suggest we add x86_platform.quirks flags. For
> example the F00F hack for Xen could be done via:
>
> x86_platform.quirks.idt_remap = 0;
>
> and would be set like this during early init:
>
> void early_init_platform_quirks(void)
> {
> x86_platform.legacy.ebda_search = 0;
> x86_platform.quirks.idt_remap = 1;
>
> switch (boot_params.hdr.hardware_subarch) {
> case X86_SUBARCH_PC:
> x86_platform.legacy.ebda_search = 1;
> break;
> case X86_SUBARCH_XEN:
> x86_platform.quirks.idt_remap = 0;
> break;
> case X86_SUBARCH_LGUEST:
> x86_platform.quirks.idt_remap = 0;
> break;
> }
> }
>
> And if also add the legacy RTC flag, it becomes:
>
> void early_init_hardcoded_platform_quirks(void)
> {
> x86_platform.legacy.ebda_search = 0;
> x86_platform.quirks.idt_remap = 1;
> x86_platform.legacy.rtc = 1;
>
> switch (boot_params.hdr.hardware_subarch) {
> case X86_SUBARCH_PC:
> x86_platform.legacy.ebda_search = 1;
> break;
> case X86_SUBARCH_XEN:
> x86_platform.quirks.idt_remap = 0;
> x86_platform.legacy.rtc = 0;
> break;
> case X86_SUBARCH_LGUEST:
> x86_platform.quirks.idt_remap = 0;
> x86_platform.legacy.rtc = 0;
> break;
> }
> }
>
> Note that both opt-in and opt-out quirks/legacies are possible this way, and note
> how cleanly and consistently it's all organized: setup of all hard coded
> legacies/quirks is concentrated in a single function, and the actual usage sites
> don't know anything about subarchitectures.
<-- snip -- >
So.. I went with Ingo's template.
> Furthermore we should probably move a few other existing legacies to this flag
> space as well, to make all this more consistent.
And this suggestion should explain a bit of the effort I put into making
room for other legacy things, which I'll elaborate in the other thread.
Luis
Powered by blists - more mailing lists