From: Greg Kroah-Hartman Date: Thu, 21 Apr 2022 06:42:23 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v4.9.312~93 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4962af6c2d00799c11a2c5ef64b701ba1ba2b3e1;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: dma-mapping-remove-bogus-test-for-pfn_valid-from-dma_map_resource.patch --- diff --git a/queue-5.15/dma-mapping-remove-bogus-test-for-pfn_valid-from-dma_map_resource.patch b/queue-5.15/dma-mapping-remove-bogus-test-for-pfn_valid-from-dma_map_resource.patch new file mode 100644 index 00000000000..75a71b632b3 --- /dev/null +++ b/queue-5.15/dma-mapping-remove-bogus-test-for-pfn_valid-from-dma_map_resource.patch @@ -0,0 +1,43 @@ +From a9c38c5d267cb94871dfa2de5539c92025c855d7 Mon Sep 17 00:00:00 2001 +From: Mike Rapoport +Date: Thu, 30 Sep 2021 04:30:38 +0300 +Subject: dma-mapping: remove bogus test for pfn_valid from dma_map_resource + +From: Mike Rapoport + +commit a9c38c5d267cb94871dfa2de5539c92025c855d7 upstream. + +dma_map_resource() uses pfn_valid() to ensure the range is not RAM. +However, pfn_valid() only checks for availability of the memory map for a +PFN but it does not ensure that the PFN is actually backed by RAM. + +As dma_map_resource() is the only method in DMA mapping APIs that has this +check, simply drop the pfn_valid() test from dma_map_resource(). + +Link: https://lore.kernel.org/all/20210824173741.GC623@arm.com/ +Signed-off-by: Mike Rapoport +Reviewed-by: Christoph Hellwig +Acked-by: David Hildenbrand +Link: https://lore.kernel.org/r/20210930013039.11260-2-rppt@kernel.org +Signed-off-by: Will Deacon +Fixes: 859a85ddf90e ("mm: remove pfn_valid_within() and CONFIG_HOLES_IN_ZONE") +Link: https://lore.kernel.org/r/Yl0IZWT2nsiYtqBT@linux.ibm.com +Signed-off-by: Georgi Djakov +Signed-off-by: Greg Kroah-Hartman +--- + kernel/dma/mapping.c | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/kernel/dma/mapping.c ++++ b/kernel/dma/mapping.c +@@ -296,10 +296,6 @@ dma_addr_t dma_map_resource(struct devic + if (WARN_ON_ONCE(!dev->dma_mask)) + return DMA_MAPPING_ERROR; + +- /* Don't allow RAM to be mapped */ +- if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr)))) +- return DMA_MAPPING_ERROR; +- + if (dma_map_direct(dev, ops)) + addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs); + else if (ops->map_resource) diff --git a/queue-5.15/series b/queue-5.15/series index 43de1f33fc3..56a0ba1564f 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -1,3 +1,4 @@ +dma-mapping-remove-bogus-test-for-pfn_valid-from-dma_map_resource.patch fs-remove-__sync_filesystem.patch block-remove-__sync_blockdev.patch block-simplify-the-block-device-syncing-code.patch