Messages in this thread | | | Date | Wed, 21 May 2008 03:10:21 +0200 | From | Rene Herman <> | Subject | Re: [X86] Add a boot parameter to force-enable PAT |
| |
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.
| |