public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [X86] Add a boot parameter to force-enable PAT
@ 2008-05-20  4:09 Dave Jones
  2008-05-20  5:53 ` Yinghai Lu
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Jones @ 2008-05-20  4:09 UTC (permalink / raw)
  To: Linux Kernel; +Cc: Ingo Molnar, Thomas Gleixner, hpa

* Add an enablepat boot parameter, useful for testing CPUs not yet
  added to the whitelist.
* Don't try to enable PAT if it was never enabled in the first place.

Signed-off-by: Dave Jones <davej@redhat.com>

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 72c07a0..e179c22 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -236,6 +236,10 @@ and is between 256 and 4096 characters. It is defined in the file
 			try_unsupported: try to drive unsupported chipsets
 				(may crash computer or cause data corruption)
 
+	enablepat	[i386,x86-64]
+			Force the CPU's PAT feature to be used even if it
+			isn't in the kernels whitelist.
+
 	enable_timer_pin_1 [i386,x86-64]
 			Enable PIN 1 of APIC timer
 			Can be useful to work around chipset bugs
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index c2e1ce3..6ce3202 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -50,9 +50,28 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
 	}
 }
 
+static int forcepat;
+
+static int __init x86_forcepat_setup(char *s)
+{
+	forcepat = 1;
+	return 1;
+}
+__setup("enablepat", x86_forcepat_setup);
+
+
 #ifdef CONFIG_X86_PAT
 void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
 {
+	if (!test_cpu_cap(c, X86_FEATURE_PAT))
+		return;
+
+	if (forcepat == 1) {
+		printk(KERN_INFO "Force enabling PAT\n");
+		set_cpu_cap(c, X86_FEATURE_PAT);
+		return;
+	}
+
 	switch (c->x86_vendor) {
 	case X86_VENDOR_AMD:
 		if (c->x86 >= 0xf && c->x86 <= 0x11)


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20  4:09 [X86] Add a boot parameter to force-enable PAT Dave Jones
@ 2008-05-20  5:53 ` Yinghai Lu
  2008-05-20 13:23   ` Dave Jones
  0 siblings, 1 reply; 11+ messages in thread
From: Yinghai Lu @ 2008-05-20  5:53 UTC (permalink / raw)
  To: Dave Jones; +Cc: Linux Kernel, Ingo Molnar, Thomas Gleixner, hpa

On Mon, May 19, 2008 at 9:09 PM, Dave Jones <davej@redhat.com> wrote:
> * Add an enablepat boot parameter, useful for testing CPUs not yet
>  added to the whitelist.
> * Don't try to enable PAT if it was never enabled in the first place.
>
> Signed-off-by: Dave Jones <davej@redhat.com>
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 72c07a0..e179c22 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -236,6 +236,10 @@ and is between 256 and 4096 characters. It is defined in the file
>                        try_unsupported: try to drive unsupported chipsets
>                                (may crash computer or cause data corruption)
>
> +       enablepat       [i386,x86-64]
> +                       Force the CPU's PAT feature to be used even if it
> +                       isn't in the kernels whitelist.
> +
>        enable_timer_pin_1 [i386,x86-64]
>                        Enable PIN 1 of APIC timer
>                        Can be useful to work around chipset bugs
> diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
> index c2e1ce3..6ce3202 100644
> --- a/arch/x86/kernel/cpu/addon_cpuid_features.c
> +++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
> @@ -50,9 +50,28 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
>        }
>  }
>
> +static int forcepat;
> +
> +static int __init x86_forcepat_setup(char *s)
> +{
> +       forcepat = 1;
> +       return 1;
> +}
> +__setup("enablepat", x86_forcepat_setup);
> +
> +
>  #ifdef CONFIG_X86_PAT
>  void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
>  {
> +       if (!test_cpu_cap(c, X86_FEATURE_PAT))
> +               return;
> +
> +       if (forcepat == 1) {
> +               printk(KERN_INFO "Force enabling PAT\n");
> +               set_cpu_cap(c, X86_FEATURE_PAT);

you don't need to set that bit again...

prevoious !test_cpu_cap(..) already get out.


> +               return;
> +       }
> +
>        switch (c->x86_vendor) {
>        case X86_VENDOR_AMD:
>                if (c->x86 >= 0xf && c->x86 <= 0x11)
>

YH

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20  5:53 ` Yinghai Lu
@ 2008-05-20 13:23   ` Dave Jones
  2008-05-20 14:41     ` Mikael Pettersson
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Jones @ 2008-05-20 13:23 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Linux Kernel, Ingo Molnar, Thomas Gleixner, hpa

On Mon, May 19, 2008 at 10:53:58PM -0700, Yinghai Lu wrote:
 
 > you don't need to set that bit again...
 > 
 > prevoious !test_cpu_cap(..) already get out.
 

* Add an enablepat boot parameter, useful for testing CPUs not yet
  added to the whitelist.
* Don't try to enable PAT if it was never enabled in the first place.

Signed-off-by: Dave Jones <davej@redhat.com>

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 72c07a0..e179c22 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -236,6 +236,10 @@ and is between 256 and 4096 characters. It is defined in the file
 			try_unsupported: try to drive unsupported chipsets
 				(may crash computer or cause data corruption)
 
+	enablepat	[i386,x86-64]
+			Force the CPU's PAT feature to be used even if it
+			isn't in the kernels whitelist.
+
 	enable_timer_pin_1 [i386,x86-64]
 			Enable PIN 1 of APIC timer
 			Can be useful to work around chipset bugs

diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index c2e1ce3..e22e809 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -50,9 +50,27 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
 	}
 }
 
+static int forcepat;
+
+static int __init x86_forcepat_setup(char *s)
+{
+	forcepat = 1;
+	return 1;
+}
+__setup("enablepat", x86_forcepat_setup);
+
+
 #ifdef CONFIG_X86_PAT
 void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
 {
+	if (!test_cpu_cap(c, X86_FEATURE_PAT))
+		return;
+
+	if (forcepat == 1) {
+		printk(KERN_INFO "Force enabling PAT\n");
+		return;
+	}
+
 	switch (c->x86_vendor) {
 	case X86_VENDOR_AMD:
 		if (c->x86 >= 0xf && c->x86 <= 0x11)

-- 
http://www.codemonkey.org.uk

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 13:23   ` Dave Jones
@ 2008-05-20 14:41     ` Mikael Pettersson
  2008-05-20 19:58       ` Dave Jones
  0 siblings, 1 reply; 11+ messages in thread
From: Mikael Pettersson @ 2008-05-20 14:41 UTC (permalink / raw)
  To: Dave Jones; +Cc: Yinghai Lu, Linux Kernel, Ingo Molnar, Thomas Gleixner, hpa

Dave Jones writes:
 > On Mon, May 19, 2008 at 10:53:58PM -0700, Yinghai Lu wrote:
 >  
 >  > you don't need to set that bit again...
 >  > 
 >  > prevoious !test_cpu_cap(..) already get out.
 >  
 > 
 > * Add an enablepat boot parameter, useful for testing CPUs not yet
 >   added to the whitelist.
 > * Don't try to enable PAT if it was never enabled in the first place.
 > 
 > Signed-off-by: Dave Jones <davej@redhat.com>
 > 
 > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
 > index 72c07a0..e179c22 100644
 > --- a/Documentation/kernel-parameters.txt
 > +++ b/Documentation/kernel-parameters.txt
 > @@ -236,6 +236,10 @@ and is between 256 and 4096 characters. It is defined in the file
 >  			try_unsupported: try to drive unsupported chipsets
 >  				(may crash computer or cause data corruption)
 >  
 > +	enablepat	[i386,x86-64]
 > +			Force the CPU's PAT feature to be used even if it
 > +			isn't in the kernels whitelist.

s/kernels/kernel's/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 14:41     ` Mikael Pettersson
@ 2008-05-20 19:58       ` Dave Jones
  2008-05-20 21:49         ` Rene Herman
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Jones @ 2008-05-20 19:58 UTC (permalink / raw)
  To: Mikael Pettersson
  Cc: Yinghai Lu, Linux Kernel, Ingo Molnar, Thomas Gleixner, hpa

* Add an enablepat boot parameter, useful for testing CPUs not yet
  added to the whitelist.
* Don't try to enable PAT if it was never enabled in the first place.

Signed-off-by: Dave Jones <davej@redhat.com>

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 72c07a0..e179c22 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -236,6 +236,10 @@ and is between 256 and 4096 characters. It is defined in the file
 			try_unsupported: try to drive unsupported chipsets
 				(may crash computer or cause data corruption)
 
+	enablepat	[i386,x86-64]
+			Force the CPU's PAT feature to be used even if it
+			isn't in the kernel's whitelist.
+
 	enable_timer_pin_1 [i386,x86-64]
 			Enable PIN 1 of APIC timer
 			Can be useful to work around chipset bugs

diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index c2e1ce3..e22e809 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -50,9 +50,27 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
 	}
 }
 
+static int forcepat;
+
+static int __init x86_forcepat_setup(char *s)
+{
+	forcepat = 1;
+	return 1;
+}
+__setup("enablepat", x86_forcepat_setup);
+
+
 #ifdef CONFIG_X86_PAT
 void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
 {
+	if (!test_cpu_cap(c, X86_FEATURE_PAT))
+		return;
+
+	if (forcepat == 1) {
+		printk(KERN_INFO "Force enabling PAT\n");
+		return;
+	}
+
 	switch (c->x86_vendor) {
 	case X86_VENDOR_AMD:
 		if (c->x86 >= 0xf && c->x86 <= 0x11)
-- 
http://www.codemonkey.org.uk

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 19:58       ` Dave Jones
@ 2008-05-20 21:49         ` Rene Herman
  2008-05-20 22:21           ` H. Peter Anvin
  0 siblings, 1 reply; 11+ messages in thread
From: Rene Herman @ 2008-05-20 21:49 UTC (permalink / raw)
  To: Dave Jones, Mikael Pettersson, Yinghai Lu, Linux Kernel,
	Ingo Molnar, Thomas Gleixner, hpa

On 20-05-08 21:58, Dave Jones wrote:

> diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
> index c2e1ce3..e22e809 100644
> --- a/arch/x86/kernel/cpu/addon_cpuid_features.c
> +++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
> @@ -50,9 +50,27 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
>  	}
>  }
>  
> +static int forcepat;
> +
> +static int __init x86_forcepat_setup(char *s)
> +{
> +	forcepat = 1;
> +	return 1;
> +}
> +__setup("enablepat", x86_forcepat_setup);

This should probably be called plain "pat" to mirror arch/x86/mm/pat.c 
"nopat" force off parameter. That by the way is an early_param which I 
guess this should then also be?

> +
> +
>  #ifdef CONFIG_X86_PAT
>  void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
>  {
> +	if (!test_cpu_cap(c, X86_FEATURE_PAT))
> +		return;

It seems you needn't test this, the !cpu_has_pat test in pat_init() will 
trigger and user knows best... :-)

> +
> +	if (forcepat == 1) {
> +		printk(KERN_INFO "Force enabling PAT\n");
> +		return;
> +	}
> +
>  	switch (c->x86_vendor) {
>  	case X86_VENDOR_AMD:
>  		if (c->x86 >= 0xf && c->x86 <= 0x11)

Rene.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 21:49         ` Rene Herman
@ 2008-05-20 22:21           ` H. Peter Anvin
  2008-05-20 22:42             ` Rene Herman
  0 siblings, 1 reply; 11+ messages in thread
From: H. Peter Anvin @ 2008-05-20 22:21 UTC (permalink / raw)
  To: Rene Herman
  Cc: Dave Jones, Mikael Pettersson, Yinghai Lu, Linux Kernel,
	Ingo Molnar, Thomas Gleixner

Rene Herman wrote:
>> +}
>> +__setup("enablepat", x86_forcepat_setup);
> 
> This should probably be called plain "pat" to mirror arch/x86/mm/pat.c 
> "nopat" force off parameter. That by the way is an early_param which I 
> guess this should then also be?
> 

Either that or "pat={off,on,force}" to give space for other options... 
would mean keeping "nopat" around as an alias for now, though...

	-hpa

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 22:21           ` H. Peter Anvin
@ 2008-05-20 22:42             ` Rene Herman
  2008-05-20 22:42               ` H. Peter Anvin
  0 siblings, 1 reply; 11+ messages in thread
From: Rene Herman @ 2008-05-20 22:42 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Dave Jones, Mikael Pettersson, Yinghai Lu, Linux Kernel,
	Ingo Molnar, Thomas Gleixner

On 21-05-08 00:21, H. Peter Anvin wrote:

> Rene Herman wrote:
>>> +}
>>> +__setup("enablepat", x86_forcepat_setup);
>>
>> This should probably be called plain "pat" to mirror arch/x86/mm/pat.c 
>> "nopat" force off parameter. That by the way is an early_param which I 
>> guess this should then also be?
>>
> 
> Either that or "pat={off,on,force}" to give space for other options... 
> would mean keeping "nopat" around as an alias for now, though...

Yes, that would be nicer. As to the alias; "nopat" hasn't been in a 
released kernel yet so should be okay to do away with? It's not like 
it's in Documentation/kernel-parameters.txt or anything... ;-/

Rene.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 22:42             ` Rene Herman
@ 2008-05-20 22:42               ` H. Peter Anvin
  2008-05-20 22:56                 ` Dave Jones
  0 siblings, 1 reply; 11+ messages in thread
From: H. Peter Anvin @ 2008-05-20 22:42 UTC (permalink / raw)
  To: Rene Herman
  Cc: Dave Jones, Mikael Pettersson, Yinghai Lu, Linux Kernel,
	Ingo Molnar, Thomas Gleixner

Rene Herman wrote:
> On 21-05-08 00:21, H. Peter Anvin wrote:
> 
>> Rene Herman wrote:
>>>> +}
>>>> +__setup("enablepat", x86_forcepat_setup);
>>>
>>> This should probably be called plain "pat" to mirror 
>>> arch/x86/mm/pat.c "nopat" force off parameter. That by the way is an 
>>> early_param which I guess this should then also be?
>>>
>>
>> Either that or "pat={off,on,force}" to give space for other options... 
>> would mean keeping "nopat" around as an alias for now, though...
> 
> Yes, that would be nicer. As to the alias; "nopat" hasn't been in a 
> released kernel yet so should be okay to do away with? It's not like 
> it's in Documentation/kernel-parameters.txt or anything... ;-/
> 

OK, just double-checked... since it's not in Linus we can still change 
it, and as so I'd suggest the pat= option.

	-hpa

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 22:42               ` H. Peter Anvin
@ 2008-05-20 22:56                 ` Dave Jones
  2008-05-21  1:10                   ` Rene Herman
  0 siblings, 1 reply; 11+ messages in thread
From: Dave Jones @ 2008-05-20 22:56 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Rene Herman, Mikael Pettersson, Yinghai Lu, Linux Kernel,
	Ingo Molnar, Thomas Gleixner

On Tue, May 20, 2008 at 03:42:49PM -0700, H. Peter Anvin wrote:

 > > Yes, that would be nicer. As to the alias; "nopat" hasn't been in a 
 > > released kernel yet so should be okay to do away with? It's not like 
 > > it's in Documentation/kernel-parameters.txt or anything... ;-/
 > > 
 > 
 > OK, just double-checked... since it's not in Linus we can still change 
 > it, and as so I'd suggest the pat= option.

Not boot-tested, but it compiles for me..
I also folded in the 'debugpat' option.

Signed-off-by: Dave Jones <davej@redhat.com>

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e37f456..9f9c2c2 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1478,6 +1478,12 @@ and is between 256 and 4096 characters. It is defined in the file
 			the specified number of seconds.  This is to be used if
 			your oopses keep scrolling off the screen.
 
+	pat=		[X86] Page attribute table support.
+			off	don't use page attribute tables.
+			force	enable use of page attribute tables, even if the
+				CPU isn't in the kernel's whitelist.
+			debug	output additional debugging information during setup.
+
 	pcbit=		[HW,ISDN]
 
 	pcd.		[PARIDE]
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index c2e1ce3..8b65f14 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -51,8 +51,15 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
 }
 
 #ifdef CONFIG_X86_PAT
+int forcepat;
+
 void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
 {
+	if (forcepat == 1) {
+		printk(KERN_INFO "Force enabling PAT\n");
+		return;
+	}
+
 	switch (c->x86_vendor) {
 	case X86_VENDOR_AMD:
 		if (c->x86 >= 0xf && c->x86 <= 0x11)
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index e83b770..7429bee 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -25,8 +25,11 @@
 #include <asm/mtrr.h>
 #include <asm/io.h>
 
+static int debug_enable;
+
 #ifdef CONFIG_X86_PAT
 int __read_mostly pat_wc_enabled = 1;
+extern int forcepat;
 
 void __cpuinit pat_disable(char *reason)
 {
@@ -34,23 +37,22 @@ void __cpuinit pat_disable(char *reason)
 	printk(KERN_INFO "%s\n", reason);
 }
 
-static int nopat(char *str)
+static int __init patsetup(char *str)
 {
-	pat_disable("PAT support disabled.");
+	if (strcmp("force", str) == 0) {
+		forcepat = 1;
+		printk(KERN_INFO "Force enabling PAT\n");
+	}
+	if (strcmp("off", str) == 0)
+		pat_disable("PAT support disabled.");
+	if (strcmp("debug", str) == 0)
+		debug_enable = 1;
 	return 0;
 }
-early_param("nopat", nopat);
+early_param("pat=", patsetup);
 #endif
 
 
-static int debug_enable;
-static int __init pat_debug_setup(char *str)
-{
-	debug_enable = 1;
-	return 0;
-}
-__setup("debugpat", pat_debug_setup);
-
 #define dprintk(fmt, arg...) \
 	do { if (debug_enable) printk(KERN_INFO fmt, ##arg); } while (0)
 

-- 
http://www.codemonkey.org.uk

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [X86] Add a boot parameter to force-enable PAT
  2008-05-20 22:56                 ` Dave Jones
@ 2008-05-21  1:10                   ` Rene Herman
  0 siblings, 0 replies; 11+ messages in thread
From: Rene Herman @ 2008-05-21  1:10 UTC (permalink / raw)
  To: Dave Jones, H. Peter Anvin, Rene Herman, Mikael Pettersson,
	Yinghai Lu, Linux Kernel, Ingo Molnar, Thomas Gleixner

On 21-05-08 00:56, Dave Jones wrote:

> Not boot-tested, but it compiles for me..

It doesn't even apply for me. Moreover though -- __early_param() still 
seems to be too late for validate_pat_support() so this isn't going to work.

__setup() is even later than that. I guess this just wants to set a flag 
from validate_pat_support() which arch/x86/mm/pat.c can then check later?

> --- a/arch/x86/kernel/cpu/addon_cpuid_features.c
> +++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
> @@ -51,8 +51,15 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
>  }
>  
>  #ifdef CONFIG_X86_PAT
> +int forcepat;
> +
>  void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
>  {
> +	if (forcepat == 1) {
> +		printk(KERN_INFO "Force enabling PAT\n");
> +		return;
> +	}
> +
>  	switch (c->x86_vendor) {
>  	case X86_VENDOR_AMD:
>  		if (c->x86 >= 0xf && c->x86 <= 0x11)
> diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
> index e83b770..7429bee 100644
> --- a/arch/x86/mm/pat.c
> +++ b/arch/x86/mm/pat.c
> @@ -25,8 +25,11 @@
>  #include <asm/mtrr.h>
>  #include <asm/io.h>
>  
> +static int debug_enable;
> +
>  #ifdef CONFIG_X86_PAT
>  int __read_mostly pat_wc_enabled = 1;
> +extern int forcepat;
>  
>  void __cpuinit pat_disable(char *reason)
>  {
> @@ -34,23 +37,22 @@ void __cpuinit pat_disable(char *reason)
>  	printk(KERN_INFO "%s\n", reason);
>  }
>  
> -static int nopat(char *str)
> +static int __init patsetup(char *str)
>  {
> -	pat_disable("PAT support disabled.");
> +	if (strcmp("force", str) == 0) {
> +		forcepat = 1;
> +		printk(KERN_INFO "Force enabling PAT\n");
> +	}
> +	if (strcmp("off", str) == 0)
> +		pat_disable("PAT support disabled.");
> +	if (strcmp("debug", str) == 0)
> +		debug_enable = 1;
>  	return 0;
>  }
> -early_param("nopat", nopat);
> +early_param("pat=", patsetup);
>  #endif
>  
>  
> -static int debug_enable;
> -static int __init pat_debug_setup(char *str)
> -{
> -	debug_enable = 1;
> -	return 0;
> -}
> -__setup("debugpat", pat_debug_setup);
> -
>  #define dprintk(fmt, arg...) \
>  	do { if (debug_enable) printk(KERN_INFO fmt, ##arg); } while (0)
>  
> 

Rene.


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-05-21  1:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-20  4:09 [X86] Add a boot parameter to force-enable PAT Dave Jones
2008-05-20  5:53 ` Yinghai Lu
2008-05-20 13:23   ` Dave Jones
2008-05-20 14:41     ` Mikael Pettersson
2008-05-20 19:58       ` Dave Jones
2008-05-20 21:49         ` Rene Herman
2008-05-20 22:21           ` H. Peter Anvin
2008-05-20 22:42             ` Rene Herman
2008-05-20 22:42               ` H. Peter Anvin
2008-05-20 22:56                 ` Dave Jones
2008-05-21  1:10                   ` Rene Herman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox