summaryrefslogtreecommitdiff
path: root/arch/arm/mm/consistent.c
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2007-02-08 16:26:23 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-08 15:29:00 +0000
commit3e1a80f11f89f318e892694b501735abb51ef626 (patch)
tree668ae6bb4240371f4fd772b2bc5faaf6ada9166e /arch/arm/mm/consistent.c
parent7ae5a761d2ffc4cf7d3248e09f4d3da234434f30 (diff)
downloadlwn-3e1a80f11f89f318e892694b501735abb51ef626.tar.gz
lwn-3e1a80f11f89f318e892694b501735abb51ef626.zip
[ARM] 4153/1: fix consistent_sync() off-by-one BUG check
In consistent_sync(), start + size can end up pointing one byte beyond the end of the direct RAM mapping. We shouldn't BUG() when this happens. Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/consistent.c')
-rw-r--r--arch/arm/mm/consistent.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mm/consistent.c b/arch/arm/mm/consistent.c
index 166aee13c4b1..1f9f94f9af4b 100644
--- a/arch/arm/mm/consistent.c
+++ b/arch/arm/mm/consistent.c
@@ -485,7 +485,7 @@ void consistent_sync(const void *start, size_t size, int direction)
{
const void *end = start + size;
- BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end));
+ BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1));
switch (direction) {
case DMA_FROM_DEVICE: /* invalidate only */