From: Yang Shi Date: Tue, 4 Mar 2008 10:20:51 +0000 (+0100) Subject: Fix DMA access of block device in 64-bit kernel on some non-x86 systems with 4GB... X-Git-Tag: firefly_0821_release~22196^2~11 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=419c434c35614609fd0c79d335c134bf4b88b30b;p=firefly-linux-kernel-4.4.55.git Fix DMA access of block device in 64-bit kernel on some non-x86 systems with 4GB or upper 4GB memory For some non-x86 systems with 4GB or upper 4GB memory, we need increase the range of addresses that can be used for direct DMA in 64-bit kernel. Signed-off-by: Yang Shi Signed-off-by: Jens Axboe --- diff --git a/block/blk-settings.c b/block/blk-settings.c index a9f37f530b15..18fab5193d81 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -140,7 +140,7 @@ void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr) /* Assume anything <= 4GB can be handled by IOMMU. Actually some IOMMUs can handle everything, but I don't know of a way to test this here. */ - if (b_pfn < (min_t(u64, 0xffffffff, BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) + if (b_pfn <= (min_t(u64, 0xffffffff, BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) dma = 1; q->bounce_pfn = max_low_pfn; #else