Please note that the same issue appears to have been introduced in the
recent 4.2.7 kernel.  It perhaps has to do
with b4ff8389ed14b849354b59ce9b360bdefcdbf99c having a matching
commit e8d097151d309eb71f750bbf34e6a7ef6256da7e in linux-stable.git.  The
below patch to arch/x86/kernel/rtc.c was also effective for 4.2.7.

Eric

On 2015-12-02 18:30, Sander Eikelenboom wrote:
> On 2015-12-02 15:55, David Vrabel wrote:
> > On 28/11/15 15:47, Sander Eikelenboom wrote:
> >> genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000
> >> (rtc0)
> >
> > We shouldn't register an rtc_cmos device because its legacy irq
> > conflicts with the irq needed for hvc0.  For a multi VCPU guest irq 8
> > is
> > in use for the pv spinlocks and this gets requested first, preventing
> > the rtc device from probing.
> >
> > Does this patch fix it for you?
> >
> > David
>
> It does, thanks.
>
> Reported-and-tested-by: Sander Eikelenboom <li...@eikelenboom.it>
>
> --
> Sander
>
> > 8<--------------------
> > x86: rtc_cmos platform device requires legacy irqs
> >
> > Adding the rtc platform device when there are no legacy irqs (no
> > legacy PIC) causes a conflict with other devices that end up using the
> > same irq number.
> >
> > In a single VCPU PV guest we should have:
> >
> > /proc/interrupts:
> >            CPU0
> >   0:       4934  xen-percpu-virq      timer0
> >   1:          0  xen-percpu-ipi       spinlock0
> >   2:          0  xen-percpu-ipi       resched0
> >   3:          0  xen-percpu-ipi       callfunc0
> >   4:          0  xen-percpu-virq      debug0
> >   5:          0  xen-percpu-ipi       callfuncsingle0
> >   6:          0  xen-percpu-ipi       irqwork0
> >   7:        321   xen-dyn-event     xenbus
> >   8:         90   xen-dyn-event     hvc_console
> >   ...
> >
> > But hvc_console cannot get its interrupt because it is already in use
> > by rtc0 and the console does not work.
> >
> >   genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000
> > (rtc0)
> >
> > The rtc_cmos device requires a particular legacy irq so don't add it
> > if there are no legacy irqs.
> >
> > Signed-off-by: David Vrabel <david.vra...@citrix.com>
> > ---
> >  arch/x86/kernel/rtc.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
> > index cd96852..07c70f1 100644
> > --- a/arch/x86/kernel/rtc.c
> > +++ b/arch/x86/kernel/rtc.c
> > @@ -14,6 +14,7 @@
> >  #include <asm/time.h>
> >  #include <asm/intel-mid.h>
> >  #include <asm/rtc.h>
> > +#include <asm/i8259.h>
> >
> >  #ifdef CONFIG_X86_32
> >  /*
> > @@ -200,6 +201,10 @@ static __init int add_rtc_cmos(void)
> >       }
> >  #endif
> >
> > +     /* RTC uses legacy IRQs. */
> > +     if (!nr_legacy_irqs())
> > +             return -ENODEV;
> > +
> >       platform_device_register(&rtc_device);
> >       dev_info(&rtc_device.dev,
> >                "registered platform RTC device (no PNP device
found)\n");
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to