Christoph Hellwig
33dcb37cef
dma-mapping: fix page attributes for dma_mmap_*
...
All the way back to introducing dma_common_mmap we've defaulted to mark
the pages as uncached. But this is wrong for DMA coherent devices.
Later on DMA_ATTR_WRITE_COMBINE also got incorrect treatment as that
flag is only treated special on the alloc side for non-coherent devices.
Introduce a new dma_pgprot helper that deals with the check for coherent
devices so that only the remapping cases ever reach arch_dma_mmap_pgprot
and we thus ensure no aliasing of page attributes happens, which makes
the powerpc version of arch_dma_mmap_pgprot obsolete and simplifies the
remaining ones.
Note that this means arch_dma_mmap_pgprot is a bit misnamed now, but
we'll phase it out soon.
Fixes: 64ccc9c033 ("common: dma-mapping: add support for generic dma_mmap_* calls")
Reported-by: Shawn Anastasio <shawn@anastas.io >
Reported-by: Gavin Li <git@thegavinli.com >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Acked-by: Catalin Marinas <catalin.marinas@arm.com > # arm64
2019-08-10 19:52:45 +02:00
..
2019-07-25 17:35:03 -07:00
2019-07-19 10:42:02 -07:00
2018-10-24 20:55:56 -04:00
2019-05-21 10:50:46 +02:00
2019-08-10 19:52:45 +02:00
2019-07-25 15:41:31 +02:00
2019-06-03 16:18:12 +02:00
2019-07-08 11:22:57 -07:00
2019-07-11 15:30:05 -07:00
2019-07-25 15:39:27 +02:00
2019-07-15 20:44:49 -07:00
2019-05-21 11:28:45 +02:00
2019-06-28 19:46:47 +02:00
2019-07-25 15:37:05 +02:00
2019-07-10 20:37:49 +02:00
2019-07-30 21:50:03 -04:00
2019-04-29 16:48:03 +02:00
2019-04-04 21:04:13 -04:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:26:37 -07:00
2019-04-26 13:51:03 -04:00
2019-05-30 11:26:35 -07:00
2019-07-08 18:55:42 -07:00
2019-07-08 18:55:42 -07:00
2019-07-08 18:55:42 -07:00
2019-05-28 17:46:43 -04:00
2019-06-05 17:37:17 +02:00
2018-10-31 08:54:14 -07:00
2019-01-25 11:22:43 -08:00
2019-06-19 17:09:55 +02:00
2019-03-07 18:32:02 -08:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:36:37 +02:00
2019-07-08 10:39:56 -07:00
2019-06-19 17:09:06 +02:00
2019-05-21 10:50:45 +02:00
2019-07-25 08:36:29 -07:00
2019-05-21 11:52:39 +02:00
2019-07-30 19:57:14 +02:00
2019-05-30 11:26:35 -07:00
2019-06-03 15:49:06 +02:00
2019-07-25 15:37:04 +02:00
2019-05-21 10:50:45 +02:00
2019-06-03 11:50:18 +02:00
2019-07-09 10:10:52 +09:00
2019-05-21 10:50:45 +02:00
2019-07-12 11:05:40 -07:00
2019-05-21 10:50:45 +02:00
2019-06-17 12:09:22 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-07-22 18:05:11 +02:00
2019-03-07 18:32:02 -08:00
2019-06-19 17:09:06 +02:00
2019-07-08 20:28:59 -07:00
2019-06-19 17:09:06 +02:00
2019-05-24 20:16:01 +02:00
2019-07-18 11:51:00 -07:00
2019-05-30 11:26:39 -07:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:37:17 +02:00
2019-08-03 07:02:01 -07:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-07-18 12:06:57 -07:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:37:17 +02:00
2019-07-18 13:39:54 +08:00
2019-07-15 11:03:01 -03:00
2019-05-30 11:26:35 -07:00
2019-07-18 17:08:07 -07:00
2019-07-16 19:23:24 -07:00
2019-05-21 10:50:45 +02:00
2019-07-16 19:23:24 -07:00
2019-05-21 10:50:45 +02:00
2019-03-12 13:27:20 -07:00
2019-07-18 17:08:06 -07:00
2019-05-27 09:36:28 -05:00
2019-05-29 09:31:44 -05:00
2019-08-03 07:02:00 -07:00
2019-07-20 11:27:16 +02:00
2019-05-21 10:50:45 +02:00
2019-07-08 11:01:13 -07:00
2018-12-05 19:31:44 -08:00
2019-07-18 16:47:24 +02:00
2019-06-15 12:25:55 +02:00
2019-06-21 01:54:53 +02:00
2019-06-01 15:51:31 -07:00
2019-01-04 13:13:47 -08:00
2019-07-18 17:08:07 -07:00
2019-05-30 11:26:37 -07:00
2019-05-21 11:52:39 +02:00
2019-05-28 09:06:09 -07:00
2019-07-18 11:51:00 -07:00
2019-05-30 11:26:37 -07:00
2019-07-18 17:08:07 -07:00
2019-05-21 10:50:45 +02:00
2019-06-23 14:26:26 +02:00
2019-07-08 19:36:47 -07:00
2019-05-21 10:50:45 +02:00
2019-07-08 19:36:47 -07:00
2019-06-05 17:37:17 +02:00
2019-06-05 17:37:17 +02:00
2019-04-19 09:46:05 -07:00
2019-04-18 14:05:51 +02:00
2019-04-16 16:55:15 +02:00
2019-06-27 14:12:19 -07:00