Re: [PATCH] x86: ioapic needs check attr when programmed more thanonce

From: Ingo Molnar
Date: Fri Aug 23 2013 - 04:24:04 EST



* Liu ping fan <kernelfans@xxxxxxxxx> wrote:

> On Fri, Aug 23, 2013 at 4:04 PM, Liu ping fan <kernelfans@xxxxxxxxx> wrote:
> > On Fri, Aug 23, 2013 at 3:30 PM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >>
> >> * Liu Ping Fan <kernelfans@xxxxxxxxx> wrote:
> >>
> >>> When programming ioapic pinX more than once, current code
> >>> does not check whether the later attr (trigger&polarity) is the
> >>> same as the former or not. This causes a broken semantic.
> >>>
> >>> Fix it by reporting -EBUSY, when attr is different.
> >>
> >> Was this observed in real life somehow, and if yes, what is
> >> the before/after behavior?
> >>
> > Using qemu q35 machine, I found the ioapic's ioredtbl[] will never has
> > low-active, even the hpet driver registered it. After tracing, I found
> > it shared a high-level active IRQ line with other device. So in fact,
> > the acpi_register_gsi(, ACPI_ACTIVE_LOW) in hpet driver fail, but it
> > did not detect it.
> > The effect in qemu: when hpet-dev assert low-level, the kernel can not respond.
> >
> After changing, I can observe the low-active be set in ioredtbl[x],
> and with some bug fix in qemu's hpet, the kernel can work.

Okay, so because in practice this kind of information is
much more important to users than anything else in the
changelog please put all this into the changelog and
re-send.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/