[patch 5/7] x86 PAT: change pgprot_noncached to uc_minus instead of strong uc - v3

venkatesh.pallipadi
2008-12-18T20:04:20Z

[-- Attachment #1: make_pgprot_noncached_ucminus.patch --]
[-- Type: text/plain, Size: 2657 bytes --]

Make pgprot_noncached uc_minus instead of strong UC. This will make
pgprot_noncached to be in line with ioremap_nocache() and all the other
APIs that map page uc_minus on uc request.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>

---
arch/x86/include/asm/pgtable.h | 8 ++++++++
arch/x86/include/asm/pgtable_32.h | 9 ---------
arch/x86/include/asm/pgtable_64.h | 6 ------
3 files changed, 8 insertions(+), 15 deletions(-)

Index: linux-2.6/arch/x86/include/asm/pgtable.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/pgtable.h 2008-12-17 17:09:16.000000000 -0800
+++ linux-2.6/arch/x86/include/asm/pgtable.h 2008-12-17 17:23:07.000000000 -0800
@@ -158,6 +158,14 @@
#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
#endif

+/*
+ * Macro to mark a page protection value as UC-
+ */
+#define pgprot_noncached(prot) \
+ ((boot_cpu_data.x86 > 3) \
+ ? (__pgprot(pgprot_val(prot) | _PAGE_CACHE_UC_MINUS)) \
+ : (prot))
+
#ifndef __ASSEMBLY__

/*
Index: linux-2.6/arch/x86/include/asm/pgtable_32.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/pgtable_32.h 2008-12-17 15:01:51.000000000 -0800
+++ linux-2.6/arch/x86/include/asm/pgtable_32.h 2008-12-17 17:23:07.000000000 -0800
@@ -101,15 +101,6 @@ extern unsigned long pg0[];
#endif

/*
- * Macro to mark a page protection value as "uncacheable".
- * On processors which do not support it, this is a no-op.
- */
-#define pgprot_noncached(prot) \
- ((boot_cpu_data.x86 > 3) \
- ? (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)) \
- : (prot))
-
-/*
* Conversion functions: convert a page and protection to a page entry,
* and a page entry and page directory to the page they refer to.
*/
Index: linux-2.6/arch/x86/include/asm/pgtable_64.h
===================================================================
--- linux-2.6.orig/arch/x86/include/asm/pgtable_64.h 2008-12-17 15:01:51.000000000 -0800
+++ linux-2.6/arch/x86/include/asm/pgtable_64.h 2008-12-17 17:23:07.000000000 -0800
@@ -177,12 +177,6 @@ static inline int pmd_bad(pmd_t pmd)
#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */

/*
- * Macro to mark a page protection value as "uncacheable".
- */
-#define pgprot_noncached(prot) \
- (__pgprot(pgprot_val((prot)) | _PAGE_PCD | _PAGE_PWT))
-
-/*
* Conversion functions: convert a page and protection to a page entry,
* and a page entry and page directory to the page they refer to.
*/

--