[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160223181051.GG25240@wotan.suse.de>
Date: Tue, 23 Feb 2016 19:10:51 +0100
From: "Luis R. Rodriguez" <mcgrof@...e.com>
To: 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, xen-devel@...ts.xensource.com,
x86@...nel.org, linux-kernel@...r.kernel.org, luto@...capital.net,
lguest@...ts.ozlabs.org, boris.ostrovsky@...cle.com
Subject: Re: [Xen-devel] [PATCH v3 10/11] x86/rtc: replace paravirt rtc check
with x86 specific solution
On Tue, Feb 23, 2016 at 11:57:16AM +0000, David Vrabel wrote:
> On 23/02/16 07:24, Luis R. Rodriguez wrote:
> > --- a/arch/x86/xen/enlighten.c
> > +++ b/arch/x86/xen/enlighten.c
> [...]
> > @@ -1526,8 +1525,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
> >
> > /* Install Xen paravirt ops */
> > pv_info = xen_info;
> > - if (xen_initial_domain())
> > - pv_info.features |= PV_SUPPORTED_RTC;
> > pv_init_ops = xen_init_ops;
> > if (!xen_pvh_domain()) {
> > pv_cpu_ops = xen_cpu_ops;
> > diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
> > index a0a4e554c6f1..fbfcb01015f0 100644
> > --- a/arch/x86/xen/time.c
> > +++ b/arch/x86/xen/time.c
> > @@ -446,8 +446,10 @@ void __init xen_init_time_ops(void)
> > x86_platform.calibrate_tsc = xen_tsc_khz;
> > x86_platform.get_wallclock = xen_get_wallclock;
> > /* Dom0 uses the native method to set the hardware RTC. */
> > - if (!xen_initial_domain())
> > + if (!xen_initial_domain()) {
> > + x86_init.platform_flags |= X86_PLATFORM_NO_RTC;
> > x86_platform.set_wallclock = xen_set_wallclock;
> > + }
> > }
>
> Is this an early enough point to set this flag?
I'm glad you asked, I should have explained how I confirmed this on the commit
log as well. The answer is yes, even though I haven't tested it, but logically
I've confirmed this given that rtc is initialized via device_initcall(add_rtc_cmos);
-- these get called late in boot, way after setup_arch() during rest_init().
Luis
Powered by blists - more mailing lists