Re: [2.6.25-git18 => 2.6.26-rc1-git1] Xorg crash with xf86MapVidMem error

From: Venki Pallipadi
Date: Tue May 06 2008 - 18:52:01 EST


On Tue, May 06, 2008 at 01:55:24PM +0200, Ingo Molnar wrote:
>
> * Venki Pallipadi <venkatesh.pallipadi@xxxxxxxxx> wrote:
>
> > Below is the patch to enable debug messages by a boot option
> > "debugpat".
>
> ok, i have applied the patch with some modifications - see below.
>
> Since we build in this code unconditionally also make the flag
> switchable from a sysctl, so that users do not have to reboot to see PAT
> debug messages ...
>

Below patch adds the sysctl interface.

Thanks,
Venki


Add sysctl interface to runtime change debugpat setting.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>

---
arch/x86/mm/pat.c | 6 +++---
include/linux/kernel.h | 1 +
kernel/sysctl.c | 8 ++++++++
3 files changed, 12 insertions(+), 3 deletions(-)

Index: linux-2.6/arch/x86/mm/pat.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/pat.c 2008-05-06 10:52:51.000000000 -0700
+++ linux-2.6/arch/x86/mm/pat.c 2008-05-06 15:27:59.000000000 -0700
@@ -39,16 +39,16 @@ static int nopat(char *str)
early_param("nopat", nopat);


-static int debug_enable;
+int pat_debug_enable = 0;
static int __init pat_debug_setup(char *str)
{
- debug_enable = 1;
+ pat_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)
+ do { if (pat_debug_enable) printk(KERN_INFO fmt, ##arg); } while (0)


static int pat_known_cpu(void)
Index: linux-2.6/include/linux/kernel.h
===================================================================
--- linux-2.6.orig/include/linux/kernel.h 2008-05-02 09:45:26.000000000 -0700
+++ linux-2.6/include/linux/kernel.h 2008-05-06 10:54:06.000000000 -0700
@@ -239,6 +239,7 @@ extern int tainted;
extern const char *print_tainted(void);
extern void add_taint(unsigned);
extern int root_mountflags;
+extern int pat_debug_enable;

/* Values used for system_state */
extern enum system_states {
Index: linux-2.6/kernel/sysctl.c
===================================================================
--- linux-2.6.orig/kernel/sysctl.c 2008-05-02 09:45:26.000000000 -0700
+++ linux-2.6/kernel/sysctl.c 2008-05-06 10:55:08.000000000 -0700
@@ -685,6 +685,14 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = &proc_dointvec,
},
+ {
+ .ctl_name = CTL_UNNUMBERED,
+ .procname = "debugpat",
+ .data = &pat_debug_enable,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
#endif
#if defined(CONFIG_MMU)
{
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/