On Tue, 23 Mar 2021 10:13:58 -0400 "Michael S. Tsirkin" <m...@redhat.com> wrote:
CCing Philippe, maybe he has an idea how to fix it from mips side. > On Tue, Mar 23, 2021 at 10:50:05AM +0000, Peter Maydell wrote: > > On Mon, 22 Mar 2021 at 22:56, Michael S. Tsirkin <m...@redhat.com> wrote: > > > On Mon, Mar 22, 2021 at 06:46:06PM +0000, Peter Maydell wrote: > > > > This happens because pm_update_sci() calls pci_irq_handler(), > > > > which calls pci_intx(pci_dev), which returns -1, which is not > > > > a valid interrupt number to call pci_irq_handler() with. > > > > > > > > Q: given that pci_irq_handler() says it must only be called with > > > > an irqnum in [0..3], shouldn't pci_set_irq() be a bit more > > > > cautious than to pull a byte directly out of PCI_INTERRUPT_PIN > > > > and assume it's valid? (Is this guest-writable, or is it read-only?) > > > > > > It's read-only. > > > > Ah, so if a device model (a) doesn't set the value to a correct > > interrupt number and then (b) triggers an interrupt for itself, > > then that's a device model bug ? It might be worth assert()ing > > that the irqnum is valid, just to catch this kind of bug a bit > > more obviously. > > > > thanks > > -- PMM > > Sure, we can do this. Patch? >