[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>
This commit is contained in:
parent
7ae5a761d2
commit
3e1a80f11f
|
@ -485,7 +485,7 @@ void consistent_sync(const void *start, size_t size, int direction)
|
||||||
{
|
{
|
||||||
const void *end = start + size;
|
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) {
|
switch (direction) {
|
||||||
case DMA_FROM_DEVICE: /* invalidate only */
|
case DMA_FROM_DEVICE: /* invalidate only */
|
||||||
|
|
Loading…
Reference in New Issue