aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorvenkatesh.pallipadi@intel.com <venkatesh.pallipadi@intel.com>2008-12-18 14:41:32 -0500
committerH. Peter Anvin <hpa@zytor.com>2008-12-18 16:30:16 -0500
commit2520bd3123c00272f818a176c92d03c7d0a113d6 (patch)
tree1c5f3e47243d77573cb4933dadc5224d2fb32686 /arch/x86
parent8a7b12f70fb135a1b1d865687de3edcdc780f6d1 (diff)
x86: PAT: add pgprot_writecombine() interface for drivers - v3
Impact: New mm functionality. Add pgprot_writecombine. pgprot_writecombine will be aliased to pgprot_noncached when not supported by the architecture. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/include/asm/pgtable.h3
-rw-r--r--arch/x86/mm/pat.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 6968d4f6be3e..579f8ceee948 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -168,6 +168,9 @@
168 168
169#ifndef __ASSEMBLY__ 169#ifndef __ASSEMBLY__
170 170
171#define pgprot_writecombine pgprot_writecombine
172extern pgprot_t pgprot_writecombine(pgprot_t prot);
173
171/* 174/*
172 * ZERO_PAGE is a global shared page that is always zero: used 175 * ZERO_PAGE is a global shared page that is always zero: used
173 * for zero-mapped memory areas etc.. 176 * for zero-mapped memory areas etc..
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 1069ffecf77d..d5254bae84f4 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -832,6 +832,14 @@ void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
832 } 832 }
833} 833}
834 834
835pgprot_t pgprot_writecombine(pgprot_t prot)
836{
837 if (pat_enabled)
838 return __pgprot(pgprot_val(prot) | _PAGE_CACHE_WC);
839 else
840 return pgprot_noncached(prot);
841}
842
835#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT) 843#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT)
836 844
837/* get Nth element of the linked list */ 845/* get Nth element of the linked list */