powerpc/pci: Fix broken INTx configuration via OF

"Linux Kernel Mailing List" <[email protected]> Sat, 10 Feb 2018 22:21:28 +0000 (UTC)
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/c591c2e36ccc9a08f265841d2fd68e35327ab3c4
Commit:     c591c2e36ccc9a08f265841d2fd68e35327ab3c4
Parent:     ab8c609356fbe8dbcd44df11e884ce8cddf3739e
Refname:    refs/heads/master
Author:     Alexey Kardashevskiy <[email protected]>
AuthorDate: Fri Feb 9 17:23:58 2018 +1100
Committer:  Bjorn Helgaas <[email protected]>
CommitDate: Sat Feb 10 11:49:56 2018 -0600

    powerpc/pci: Fix broken INTx configuration via OF
    
    59f47eff03a0 ("powerpc/pci: Use of_irq_parse_and_map_pci() helper")
    replaced of_irq_parse_pci() + irq_create_of_mapping() with
    of_irq_parse_and_map_pci(), but neglected to capture the virq
    returned by irq_create_of_mapping(), so virq remained zero, which
    caused INTx configuration to fail.
    
    Save the virq value returned by of_irq_parse_and_map_pci() and correct
    the virq declaration to match the of_irq_parse_and_map_pci() signature.
    
    Fixes: 59f47eff03a0 "powerpc/pci: Use of_irq_parse_and_map_pci() helper"
    Signed-off-by: Alexey Kardashevskiy <[email protected]>
    [bhelgaas: changelog]
    Signed-off-by: Bjorn Helgaas <[email protected]>
---
 arch/powerpc/kernel/pci-common.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 344af823c3c4..4e884db7b213 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -339,7 +339,7 @@ struct pci_controller* pci_find_hose_for_OF_device(struct device_node* node)
  */
 static int pci_read_irq_line(struct pci_dev *pci_dev)
 {
-	unsigned int virq = 0;
+	int virq;
 
 	pr_debug("PCI: Try to map irq for %s...\n", pci_name(pci_dev));
 
@@ -347,7 +347,8 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
 	memset(&oirq, 0xff, sizeof(oirq));
 #endif
 	/* Try to get a mapping from the device-tree */
-	if (!of_irq_parse_and_map_pci(pci_dev, 0, 0)) {
+	virq = of_irq_parse_and_map_pci(pci_dev, 0, 0);
+	if (virq <= 0) {
 		u8 line, pin;
 
 		/* If that fails, lets fallback to what is in the config
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html