When an MSI descriptor was not available, the error path would try to unbind an irq that was never acquired - potentially unbinding an unrelated irq.
Fixes: 4892c9b4ada9f9 ("xen: add support for MSI message groups") Reported-by: Hooman Mirhadi mirhadih@amazon.com CC: stable@vger.kernel.org CC: Roger Pau Monné roger.pau@citrix.com CC: David Vrabel david.vrabel@citrix.com CC: Boris Ostrovsky boris.ostrovsky@oracle.com CC: Eduardo Valentin eduval@amazon.com CC: Juergen Gross jgross@suse.com CC: Thomas Gleixner tglx@linutronix.de CC: "K. Y. Srinivasan" kys@microsoft.com CC: Liu Shuo shuo.a.liu@intel.com CC: Anoob Soman anoob.soman@citrix.com Signed-off-by: Amit Shah aams@amazon.com --- drivers/xen/events/events_base.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index 1ab4bd1..b6b8b29 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -749,6 +749,7 @@ int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc, }
ret = irq_set_msi_desc(irq, msidesc); + i--; if (ret < 0) goto error_irq; out:
On 02/26/2018 12:36 PM, Amit Shah wrote:
When an MSI descriptor was not available, the error path would try to unbind an irq that was never acquired - potentially unbinding an unrelated irq.
Fixes: 4892c9b4ada9f9 ("xen: add support for MSI message groups") Reported-by: Hooman Mirhadi mirhadih@amazon.com CC: stable@vger.kernel.org CC: Roger Pau Monné roger.pau@citrix.com CC: David Vrabel david.vrabel@citrix.com CC: Boris Ostrovsky boris.ostrovsky@oracle.com CC: Eduardo Valentin eduval@amazon.com CC: Juergen Gross jgross@suse.com CC: Thomas Gleixner tglx@linutronix.de CC: "K. Y. Srinivasan" kys@microsoft.com CC: Liu Shuo shuo.a.liu@intel.com CC: Anoob Soman anoob.soman@citrix.com Signed-off-by: Amit Shah aams@amazon.com
drivers/xen/events/events_base.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index 1ab4bd1..b6b8b29 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -749,6 +749,7 @@ int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc, } ret = irq_set_msi_desc(irq, msidesc);
- i--; if (ret < 0) goto error_irq;
We really only need to do this in case of an error.
(And this patch needs to go to stable trees as well.)
Thanks -boris
linux-stable-mirror@lists.linaro.org