On 12/02/18 14:24, Andre Przywara wrote:
What would you expect the caller to do on error? Except printing an
I don't know either. Comparing this to hardware, an IRQ is usually
fire-and-forget (separating the interrupt line from the interrupt state
here), so a device doesn't really handle the case when an IRQ does not
make it through (it can't know easily anyway). However the whole state
machine might get busted in the process (if no one lowers the line, for
So looking at this printing a message looks like the best choice.
I checked all users of vgic_inject_irq(), at the moment all IRQ numbers
passed in look safe: they are either hardcoded (timer, evtchn) or
validated before (hardware IRQs, when they are tied to a virtual IRQ).
So indeed we *should* never see an invalid IRQ number, at the moment.
I need to check how this changes with the ITS, though.
So we could change the prototype (back) to void, but print some error
message if the vgic_get_irq() call fails within vgic_inject_irq().
Sounds good to me. Make sure to have those message using the log level
guest debug message. I might even be tempt to use dgprintk(...) here so
they get dropped in non-debug build.
Xen-devel mailing list