|   xen-devel
[Xen-devel] [PATCH 06/16] xen: disable PAT 
| To: | Ingo Molnar <mingo@xxxxxxx> |  
| Subject: | [Xen-devel] [PATCH 06/16] xen: disable PAT |  
| From: | Jeremy Fitzhardinge <jeremy@xxxxxxxx> |  
| Date: | Wed, 27 May 2009 00:15:28 -0700 |  
| Cc: | Chris Wright <chrisw@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>,	Ian Campbell <ian.campbell@xxxxxxxxxx>,	Ky Srinivasan <ksrinivasan@xxxxxxxxxx>, kurt.hackel@xxxxxxxxxx,	the arch/x86 maintainers <x86@xxxxxxxxxx>,	Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>,	Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>,	Jens Axboe <jens.axboe@xxxxxxxxxx>,	Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,	Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Greg KH <gregkh@xxxxxxx> |  
| Delivery-date: | Wed, 27 May 2009 00:20:45 -0700 |  
| Envelope-to: | www-data@xxxxxxxxxxxxxxxxxxx |  
| In-reply-to: | <1243408538-21100-1-git-send-email-jeremy@xxxxxxxx> |  
| List-help: | <mailto:xen-devel-request@lists.xensource.com?subject=help> |  
| List-id: | Xen developer discussion <xen-devel.lists.xensource.com> |  
| List-post: | <mailto:xen-devel@lists.xensource.com> |  
| List-subscribe: | <http://lists.xensource.com/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |  
| List-unsubscribe: | <http://lists.xensource.com/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |  
| References: | <1243408538-21100-1-git-send-email-jeremy@xxxxxxxx> |  
| Sender: | xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |  
| From: Ian Campbell <ian.campbell@xxxxxxxxxx>
Xen imposes a particular PAT layout on all paravirtual guests which
does not match the layout Linux would like to use.
Force PAT to be disabled until this is resolved.
[ Impact: disable PAT under Xen, due to incompatible configurations ]
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>
---
 arch/x86/include/asm/pat.h |    5 +++++
 arch/x86/mm/pat.c          |    7 +------
 arch/x86/xen/enlighten.c   |    3 +++
 3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h
index 7af14e5..fe7be93 100644
--- a/arch/x86/include/asm/pat.h
+++ b/arch/x86/include/asm/pat.h
@@ -6,8 +6,13 @@
 
 #ifdef CONFIG_X86_PAT
 extern int pat_enabled;
+extern void pat_disable(const char *reason);
 #else
 static const int pat_enabled;
+static inline void pat_disable(const char *reason)
+{
+       (void)reason;
+}
 #endif
 
 extern void pat_init(void);
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index e6718bb..5ba8d88 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -31,7 +31,7 @@
 #ifdef CONFIG_X86_PAT
 int __read_mostly pat_enabled = 1;
 
-static inline void pat_disable(const char *reason)
+void pat_disable(const char *reason)
 {
        pat_enabled = 0;
        printk(KERN_INFO "%s\n", reason);
@@ -43,11 +43,6 @@ static int __init nopat(char *str)
        return 0;
 }
 early_param("nopat", nopat);
-#else
-static inline void pat_disable(const char *reason)
-{
-       (void)reason;
-}
 #endif
 
 
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 50580fc..89f47da 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -51,6 +51,7 @@
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>
 #include <asm/reboot.h>
+#include <asm/pat.h>
 
 #include "xen-ops.h"
 #include "mmu.h"
@@ -1085,6 +1086,8 @@ asmlinkage void __init xen_start_kernel(void)
                add_preferred_console("hvc", 0, NULL);
        }
 
+       pat_disable("PAT disabled on Xen");
+
        xen_raw_console_write("about to get started...\n");
 
        /* Start the world */
-- 
1.6.0.6
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-devel] [GIT PULL REPOST] xen/dom0/core - core Xen dom0 support	changes, Jeremy Fitzhardinge
[Xen-devel] [PATCH 01/16] xen dom0: Make hvc_xen console work for	dom0., Jeremy Fitzhardinge
[Xen-devel] [PATCH 04/16] xen dom0: Add support for the	platform_ops hypercall, Jeremy Fitzhardinge
[Xen-devel] [PATCH 02/16] xen dom0: Initialize xenbus for dom0., Jeremy Fitzhardinge
[Xen-devel] [PATCH 03/16] xen dom0: Set up basic IO permissions for	dom0., Jeremy Fitzhardinge
[Xen-devel] [PATCH 06/16] xen: disable PAT,
Jeremy Fitzhardinge <=
[Xen-devel] [PATCH 05/16] xen mtrr: Add mtrr_ops support for Xen	mtrr, Jeremy Fitzhardinge
[Xen-devel] [PATCH 08/16] xen/dom0: Use host E820 map, Jeremy Fitzhardinge
[Xen-devel] [PATCH 09/16] xen: implement XENMEM_machphys_mapping, Jeremy Fitzhardinge
[Xen-devel] [PATCH 07/16] xen/dom0: use _PAGE_IOMAP in ioremap to	do machine mappings, Jeremy Fitzhardinge
[Xen-devel] [PATCH 10/16] xen: clear reserved bits in l3 entries	given in the initial pagetables, Jeremy Fitzhardinge
[Xen-devel] [PATCH 13/16] x86: make /dev/mem mappings _PAGE_IOMAP, Jeremy Fitzhardinge
[Xen-devel] [PATCH 12/16] xen/dom0: add XEN_DOM0 config option, Jeremy Fitzhardinge
[Xen-devel] [PATCH 14/16] paravirtualize IO permission bitmap, Jeremy Fitzhardinge
[Xen-devel] [PATCH 11/16] xen: allow enable use of VGA console on	dom0, Jeremy Fitzhardinge
[Xen-devel] [PATCH 15/16] x86: don't need "changed" parameter for	set_io_bitmap(), Jeremy Fitzhardinge
 |  |  |