io-mapping: Fixup for different names of writecombine
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 23 Aug 2016 20:15:02 +0000 (22:15 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Aug 2016 07:41:14 +0000 (09:41 +0200)
Somehow architectures can't agree on this. And for good measure make
sure we have a fallback which should work everywhere (fingers
crossed).

v2: Make it compile properly, needs a defined() for the #elif.

Fixes: ac96b5566926 ("io-mapping.h: s/PAGE_KERNEL_IO/PAGE_KERNEL/")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: linux-mm@kvack.org
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160823202233.4681-1-daniel.vetter@ffwll.ch
include/linux/io-mapping.h

index a87dd7fffc0af461d16d325b010903e89e237289..58df02bd93c9f04d0546a32de278503918d3e4f8 100644 (file)
@@ -123,7 +123,13 @@ io_mapping_init_wc(struct io_mapping *iomap,
        iomap->base = base;
        iomap->size = size;
        iomap->iomem = ioremap_wc(base, size);
+#if defined(pgprot_noncached_wc) /* archs can't agree on a name ... */
+       iomap->prot = pgprot_noncached_wc(PAGE_KERNEL);
+#elif defined(pgprot_writecombine)
        iomap->prot = pgprot_writecombine(PAGE_KERNEL);
+#else
+       iomap->prot = pgprot_noncached(PAGE_KERNEL);
+#endif
 
        return iomap;
 }