Patch "MIPS: pci-legacy: stop using of_pci_range_to_resource" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

    MIPS: pci-legacy: stop using of_pci_range_to_resource

to the 5.10-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:
     mips-pci-legacy-stop-using-of_pci_range_to_resource.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 47f9d776282e7ca271634112fdf743d438fc9df4
Author: Ilya Lipnitskiy <ilya.lipnitskiy@xxxxxxxxx>
Date:   Tue Apr 13 20:12:37 2021 -0700

    MIPS: pci-legacy: stop using of_pci_range_to_resource
    
    [ Upstream commit 3ecb9dc1581eebecaee56decac70e35365260866 ]
    
    Mirror commit aeba3731b150 ("powerpc/pci: Fix IO space breakage after
    of_pci_range_to_resource() change").
    
    Most MIPS platforms do not define PCI_IOBASE, nor implement
    pci_address_to_pio(). Moreover, IO_SPACE_LIMIT is 0xffff for most MIPS
    platforms. of_pci_range_to_resource passes the _start address_ of the IO
    range into pci_address_to_pio, which then checks it against
    IO_SPACE_LIMIT and fails, because for MIPS platforms that use
    pci-legacy (pci-lantiq, pci-rt3883, pci-mt7620), IO ranges start much
    higher than 0xffff.
    
    In fact, pci-mt7621 in staging already works around this problem, see
    commit 09dd629eeabb ("staging: mt7621-pci: fix io space and properly set
    resource limits")
    
    So just stop using of_pci_range_to_resource, which does not work for
    MIPS.
    
    Fixes PCI errors like:
      pci_bus 0000:00: root bus resource [io  0xffffffff]
    
    Fixes: 0b0b0893d49b ("of/pci: Fix the conversion of IO ranges into IO resources")
    Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@xxxxxxxxx>
    Cc: Liviu Dudau <Liviu.Dudau@xxxxxxx>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/mips/pci/pci-legacy.c b/arch/mips/pci/pci-legacy.c
index 39052de915f3..3a909194284a 100644
--- a/arch/mips/pci/pci-legacy.c
+++ b/arch/mips/pci/pci-legacy.c
@@ -166,8 +166,13 @@ void pci_load_of_ranges(struct pci_controller *hose, struct device_node *node)
 			res = hose->mem_resource;
 			break;
 		}
-		if (res != NULL)
-			of_pci_range_to_resource(&range, node, res);
+		if (res != NULL) {
+			res->name = node->full_name;
+			res->flags = range.flags;
+			res->start = range.cpu_addr;
+			res->end = range.cpu_addr + range.size - 1;
+			res->parent = res->child = res->sibling = NULL;
+		}
 	}
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux