[U-Boot] [PATCH] PCI: fix search for suitable memory region

Binary ANDing a value with 0 and comparing it against 0 always yields true, I guess that's not intended here. Use the proper mask value for the memory region type bit.
Signed-off-by: Andre Przywara andre.przywara@arm.com --- drivers/pci/pci_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c index 07f1726..b8a9a14 100644 --- a/drivers/pci/pci_common.c +++ b/drivers/pci/pci_common.c @@ -231,7 +231,7 @@ phys_addr_t pci_hose_bus_to_phys(struct pci_controller *hose, * if PCI_REGION_MEM is set we do a two pass search with preference * on matches that don't have PCI_REGION_SYS_MEMORY set */ - if ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) { + if ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) { ret = __pci_hose_bus_to_phys(hose, bus_addr, flags, PCI_REGION_SYS_MEMORY, &phys_addr); if (!ret)

Hi Andre,
On Fri, Nov 13, 2015 at 6:06 PM, Andre Przywara andre.przywara@arm.com wrote:
Binary ANDing a value with 0 and comparing it against 0 always yields true, I guess that's not intended here. Use the proper mask value for the memory region type bit.
Signed-off-by: Andre Przywara andre.przywara@arm.com
drivers/pci/pci_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c index 07f1726..b8a9a14 100644 --- a/drivers/pci/pci_common.c +++ b/drivers/pci/pci_common.c @@ -231,7 +231,7 @@ phys_addr_t pci_hose_bus_to_phys(struct pci_controller *hose, * if PCI_REGION_MEM is set we do a two pass search with preference * on matches that don't have PCI_REGION_SYS_MEMORY set */
if ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) {
if ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) { ret = __pci_hose_bus_to_phys(hose, bus_addr, flags, PCI_REGION_SYS_MEMORY, &phys_addr); if (!ret)
--
See commit 3526285068598f4e2ddaf19d4bd94f253de06ce9 "pci: fix checking PCI_REGION_MEM in pci_hose_phys_to_bus()" which is already in the mainline.
Regards, Bin

Hi Bin,
On 13/11/15 10:34, Bin Meng wrote:
Hi Andre,
On Fri, Nov 13, 2015 at 6:06 PM, Andre Przywara andre.przywara@arm.com wrote:
Binary ANDing a value with 0 and comparing it against 0 always yields true, I guess that's not intended here. Use the proper mask value for the memory region type bit.
Signed-off-by: Andre Przywara andre.przywara@arm.com
drivers/pci/pci_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c index 07f1726..b8a9a14 100644 --- a/drivers/pci/pci_common.c +++ b/drivers/pci/pci_common.c @@ -231,7 +231,7 @@ phys_addr_t pci_hose_bus_to_phys(struct pci_controller *hose, * if PCI_REGION_MEM is set we do a two pass search with preference * on matches that don't have PCI_REGION_SYS_MEMORY set */
if ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) {
if ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) { ret = __pci_hose_bus_to_phys(hose, bus_addr, flags, PCI_REGION_SYS_MEMORY, &phys_addr); if (!ret)
--
See commit 3526285068598f4e2ddaf19d4bd94f253de06ce9 "pci: fix checking PCI_REGION_MEM in pci_hose_phys_to_bus()" which is already in the mainline.
Ah, sorry, I missed that one (forgot updating the master branch). Thanks for pointing this out!
Cheers, Andre.
participants (2)
-
Andre Przywara
-
Bin Meng