[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH] x86/pass-through: avoid double IRQ unbind during domain cleanup
> -----Original Message----- > From: Jan Beulich <jbeulich@xxxxxxxx> > Sent: 28 April 2020 13:22 > To: xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Paul Durrant <paul@xxxxxxx>; Varad Gautam <vrd@xxxxxxxxx>; Andrew Cooper > <andrew.cooper3@xxxxxxxxxx>; Roger Pau Monné <roger.pau@xxxxxxxxxx>; Wei Liu > <wl@xxxxxxx> > Subject: [PATCH] x86/pass-through: avoid double IRQ unbind during domain > cleanup > > XEN_DOMCTL_destroydomain creates a continuation if domain_kill -ERESTARTs. > In that scenario, it is possible to receive multiple _pirq_guest_unbind > calls for the same pirq from domain_kill, if the pirq has not yet been > removed from the domain's pirq_tree, as: > domain_kill() > -> domain_relinquish_resources() > -> pci_release_devices() > -> pci_clean_dpci_irq() > -> pirq_guest_unbind() > -> __pirq_guest_unbind() > > Avoid recurring invocations of pirq_guest_unbind() by removing the pIRQ > from the tree being iterated after the first call there. In case such a > removed entry still has a softirq outstanding, record it and re-check > upon re-invocation. > > Reported-by: Varad Gautam <vrd@xxxxxxxxx> > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > Tested-by: Varad Gautam <vrd@xxxxxxxxx> Reviewed-by: Paul Durrant <paul@xxxxxxx>
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |