diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2007-12-10 18:36:50 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-12-14 18:34:29 +0100 |
commit | b87bb40b62310328e908d580e013e0575b05886c (patch) | |
tree | aa095d0a19180ff62a8cfa879e20c8cf5fe6f937 /arch/mips/au1000 | |
parent | [MIPS] Alchemy: fix PCI resource conflict (diff) | |
download | linux-b87bb40b62310328e908d580e013e0575b05886c.tar.xz linux-b87bb40b62310328e908d580e013e0575b05886c.zip |
[MIPS] Alchemy: fix off by two error in __fixup_bigphys_addr()
the PCI specific code in this function doesn't check for the address range
being under the upper bound of the PCI memory window correctly -- fix this,
somewhat beautifying the code around the check, while at it...
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/au1000')
-rw-r--r-- | arch/mips/au1000/common/setup.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c index a90d425d4651..d885e3848ec6 100644 --- a/arch/mips/au1000/common/setup.c +++ b/arch/mips/au1000/common/setup.c @@ -137,12 +137,11 @@ phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size) #ifdef CONFIG_PCI { - u32 start, end; + u32 start = (u32)Au1500_PCI_MEM_START; + u32 end = (u32)Au1500_PCI_MEM_END; - start = (u32)Au1500_PCI_MEM_START; - end = (u32)Au1500_PCI_MEM_END; - /* check for pci memory window */ - if ((phys_addr >= start) && ((phys_addr + size) < end)) + /* Check for PCI memory window */ + if (phys_addr >= start && (phys_addr + size - 1) <= end) return (phys_t) ((phys_addr - start) + Au1500_PCI_MEM_START); } |