On June 21, 2019 19:00:25 Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > On Fri, 21 Jun 2019, Hodaszi, Robert wrote: >> >> >> Also, it seems, if I'm running the serial port opening-closing process >> on the same core as the interrupt is assigned to, I'm not getting the >> error message. If I'm running it on a different core, most of the time, >> I'm getting the error message. > > ... > >> Unfortunately, I'm stuck at this point a bit. Don't really know, what >> would be the proper solution (how could I avoid free'ing up a pending >> IRQ's vector), also I'm not knowing the x86 part of the kernel very well >> yet. > > Not freeing the vector would just paper over the problem. Can you try the > patch below? > > Thanks, > > tglx > > 8<------------------ > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index 53aa234a6803..189db40b0524 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/io_apic.c > @@ -3003,8 +3003,8 @@ void mp_irqdomain_deactivate(struct irq_domain *domain, > struct irq_data *irq_data) > { > /* It won't be called for IRQ with multiple IOAPIC pins associated */ > - ioapic_mask_entry(mp_irqdomain_ioapic_idx(domain), > - (int)irq_data->hwirq); > + clear_IO_APIC_pin(mp_irqdomain_ioapic_idx(domain), > + (unsigned int)irq_data->hwirq); > } > > int mp_irqdomain_ioapic_idx(struct irq_domain *domain) I can try it on Monday. Thanks! Robert