This is a note to let you know that I've just added the patch titled

    misc: pci_endpoint_test: Fix BUG_ON error during pci_disable_msi()

to the 4.14-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     misc-pci_endpoint_test-fix-bug_on-error-during-pci_disable_msi.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <sta...@vger.kernel.org> know about it.


From foo@baz Mon 11 Nov 2019 10:07:22 AM CET
From: Mathieu Poirier <mathieu.poir...@linaro.org>
Date: Thu,  5 Sep 2019 10:17:52 -0600
Subject: misc: pci_endpoint_test: Fix BUG_ON error during pci_disable_msi()
To: sta...@vger.kernel.org
Cc: linux-...@vger.kernel.org, linux-ker...@vger.kernel.org, 
linux...@vger.kernel.org, dri-devel@lists.freedesktop.org, 
linux-o...@vger.kernel.org, linux-...@vger.kernel.org, 
linux-...@vger.kernel.org, linux-...@lists.infradead.org
Message-ID: <20190905161759.28036-12-mathieu.poir...@linaro.org>

From: Kishon Vijay Abraham I <kis...@ti.com>

commit b7636e816adcb52bc96b6fb7bc9d141cbfd17ddb upstream

pci_disable_msi() throws a Kernel BUG if the driver has successfully
requested an IRQ and not released it. Fix it here by freeing IRQs before
invoking pci_disable_msi().

Signed-off-by: Kishon Vijay Abraham I <kis...@ti.com>
Signed-off-by: Bjorn Helgaas <bhelg...@google.com>
Signed-off-by: Mathieu Poirier <mathieu.poir...@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/misc/pci_endpoint_test.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/drivers/misc/pci_endpoint_test.c
+++ b/drivers/misc/pci_endpoint_test.c
@@ -92,6 +92,7 @@ struct pci_endpoint_test {
        void __iomem    *bar[6];
        struct completion irq_raised;
        int             last_irq;
+       int             num_irqs;
        /* mutex to protect the ioctls */
        struct mutex    mutex;
        struct miscdevice miscdev;
@@ -514,6 +515,7 @@ static int pci_endpoint_test_probe(struc
                irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI);
                if (irq < 0)
                        dev_err(dev, "failed to get MSI interrupts\n");
+               test->num_irqs = irq;
        }
 
        err = devm_request_irq(dev, pdev->irq, pci_endpoint_test_irqhandler,
@@ -581,6 +583,9 @@ err_iounmap:
                        pci_iounmap(pdev, test->bar[bar]);
        }
 
+       for (i = 0; i < irq; i++)
+               devm_free_irq(dev, pdev->irq + i, test);
+
 err_disable_msi:
        pci_disable_msi(pdev);
        pci_release_regions(pdev);
@@ -594,6 +599,7 @@ err_disable_pdev:
 static void pci_endpoint_test_remove(struct pci_dev *pdev)
 {
        int id;
+       int i;
        enum pci_barno bar;
        struct pci_endpoint_test *test = pci_get_drvdata(pdev);
        struct miscdevice *misc_device = &test->miscdev;
@@ -609,6 +615,8 @@ static void pci_endpoint_test_remove(str
                if (test->bar[bar])
                        pci_iounmap(pdev, test->bar[bar]);
        }
+       for (i = 0; i < test->num_irqs; i++)
+               devm_free_irq(&pdev->dev, pdev->irq + i, test);
        pci_disable_msi(pdev);
        pci_release_regions(pdev);
        pci_disable_device(pdev);


Patches currently in stable-queue which might be from 
mathieu.poir...@linaro.org are

queue-4.14/mailbox-reset-txdone_method-txdone_by_poll-if-client-knows_txdone.patch
queue-4.14/mtd-spi-nor-cadence-quadspi-add-a-delay-in-write-sequence.patch
queue-4.14/misc-pci_endpoint_test-fix-bug_on-error-during-pci_disable_msi.patch
queue-4.14/asoc-tlv320dac31xx-mark-expected-switch-fall-through.patch
queue-4.14/pci-dra7xx-add-shutdown-handler-to-cleanly-turn-off-clocks.patch
queue-4.14/asoc-tlv320aic31xx-handle-inverted-bclk-in-non-dsp-modes.patch
queue-4.14/mtd-spi-nor-enable-4b-opcodes-for-mx66l51235l.patch
queue-4.14/cpufreq-ti-cpufreq-add-missing-of_node_put.patch
queue-4.14/asoc-davinci-kill-bug_on-usage.patch
queue-4.14/mfd-palmas-assign-the-right-powerhold-mask-for-tps65917.patch
queue-4.14/asoc-davinci-mcasp-fix-an-error-handling-path-in-davinci_mcasp_probe.patch
queue-4.14/misc-pci_endpoint_test-prevent-some-integer-overflows.patch
queue-4.14/asoc-davinci-mcasp-handle-return-value-of-devm_kasprintf.patch
queue-4.14/i2c-omap-trigger-bus-recovery-in-lockup-case.patch
queue-4.14/usb-dwc3-allow-disabling-of-metastability-workaround.patch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to