aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorvenkatesh.pallipadi@intel.com <venkatesh.pallipadi@intel.com>2008-03-18 20:00:15 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-24 17:40:47 -0400
commite045fb2a988a9a1964059b0d33dbaf18d12f925f (patch)
tree61dbd03abd83dcf6d5195fa6463ea96e125784f6 /include
parente2beb3eae627211b67e456c53f946cede2ac10d7 (diff)
x86: PAT avoid aliasing in /dev/mem read/write
Add xlate and unxlate around /dev/mem read/write. This sets up the mapping that can be used for /dev/mem read and write without aliasing worries. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/io.h8
-rw-r--r--include/asm-x86/io_32.h6
-rw-r--r--include/asm-x86/io_64.h6
3 files changed, 8 insertions, 12 deletions
diff --git a/include/asm-x86/io.h b/include/asm-x86/io.h
index 7b292d386713..d5b11f60dbd0 100644
--- a/include/asm-x86/io.h
+++ b/include/asm-x86/io.h
@@ -1,3 +1,6 @@
1#ifndef _ASM_X86_IO_H
2#define _ASM_X86_IO_H
3
1#define ARCH_HAS_IOREMAP_WC 4#define ARCH_HAS_IOREMAP_WC
2 5
3#ifdef CONFIG_X86_32 6#ifdef CONFIG_X86_32
@@ -5,7 +8,12 @@
5#else 8#else
6# include "io_64.h" 9# include "io_64.h"
7#endif 10#endif
11
12extern void *xlate_dev_mem_ptr(unsigned long phys);
13extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
14
8extern int ioremap_change_attr(unsigned long vaddr, unsigned long size, 15extern int ioremap_change_attr(unsigned long vaddr, unsigned long size,
9 unsigned long prot_val); 16 unsigned long prot_val);
10extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size); 17extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size);
11 18
19#endif /* _ASM_X86_IO_H */
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h
index 509045f5fda2..6e73467a4fb1 100644
--- a/include/asm-x86/io_32.h
+++ b/include/asm-x86/io_32.h
@@ -49,12 +49,6 @@
49#include <linux/vmalloc.h> 49#include <linux/vmalloc.h>
50 50
51/* 51/*
52 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
53 * access
54 */
55#define xlate_dev_mem_ptr(p) __va(p)
56
57/*
58 * Convert a virtual cached pointer to an uncached pointer 52 * Convert a virtual cached pointer to an uncached pointer
59 */ 53 */
60#define xlate_dev_kmem_ptr(p) p 54#define xlate_dev_kmem_ptr(p) p
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
index c2f5eef47b88..0930bedf9e4d 100644
--- a/include/asm-x86/io_64.h
+++ b/include/asm-x86/io_64.h
@@ -308,12 +308,6 @@ extern int iommu_bio_merge;
308#define BIO_VMERGE_BOUNDARY iommu_bio_merge 308#define BIO_VMERGE_BOUNDARY iommu_bio_merge
309 309
310/* 310/*
311 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
312 * access
313 */
314#define xlate_dev_mem_ptr(p) __va(p)
315
316/*
317 * Convert a virtual cached pointer to an uncached pointer 311 * Convert a virtual cached pointer to an uncached pointer
318 */ 312 */
319#define xlate_dev_kmem_ptr(p) p 313#define xlate_dev_kmem_ptr(p) p