diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c index e51639a81b2e04..d43af85135d30c 100644 --- a/drivers/mmc/host/bcm2835-sdhost.c +++ b/drivers/mmc/host/bcm2835-sdhost.c @@ -543,6 +543,11 @@ static void bcm2835_sdhost_dma_complete(void *param) void *page; u32 *buf; + if (host->drain_offset & PAGE_MASK) { + host->drain_page += host->drain_offset >> PAGE_SHIFT; + host->drain_offset &= ~PAGE_MASK; + } + page = kmap_atomic(host->drain_page); buf = page + host->drain_offset;