aboutsummaryrefslogtreecommitdiff
path: root/drivers/pci/pci_common.c
diff options
context:
space:
mode:
authorCheng Gu2015-10-23 21:48:01 +0000
committerTom Rini2015-11-12 13:19:03 -0500
commit3526285068598f4e2ddaf19d4bd94f253de06ce9 (patch)
tree0ac1b193c31e4e3f1475487cc6c8c353b6fd779d /drivers/pci/pci_common.c
parent78e9e71c83cf75483a6f756488b245df33783c5b (diff)
pci: fix checking PCI_REGION_MEM in pci_hose_phys_to_bus()
When converting between PCI bus and phys addresses, a two pass search was introduced with preference to non-PCI_REGION_SYS_MEMORY regions. See commit 2d43e873a29ca4959ba6a30fc7fb396d3fd0dccf. However, since PCI_REGION_MEM is defined as 0, the if statement was always asserted true: ((flags & PCI_REGION_MEM) == PCI_REGION_MEM) This patch uses PCI_REGION_TYPE bit to check if the region is PCI_REGION_MEM: ((flags & PCI_REGION_TYPE) == PCI_REGION_MEM) Signed-off-by: Cheng Gu <chenggu@marvell.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/pci/pci_common.c')
-rw-r--r--drivers/pci/pci_common.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c
index 07f1726748a..a64792f9881 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)
@@ -298,7 +298,7 @@ pci_addr_t pci_hose_phys_to_bus(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_phys_to_bus(hose, phys_addr,
flags, PCI_REGION_SYS_MEMORY, &bus_addr);
if (!ret)