Re: [PATCH][2.5] Add TAINT_UNKNOWN_STATE

Zwane Mwaikambo (zwane@holomorphy.com)
Thu, 21 Nov 2002 02:59:43 -0500 (EST)


On Thu, 21 Nov 2002, Zwane Mwaikambo wrote:

> Hi,
> I've come across some bugs on my test rig where the oops didn't
> make any sense at all, after trawling through a couple of megs of debug
> output in the logs i came across the previous oops... This is only after
> spending a considerable amount of time trying to make sense of a useless
> oops. I also think this would be of use when handling general bug
> reports, this way we'd be able to determine wether the system was in an
> uknown state when the oops was dumped, and perhaps try and get further
> information from the bug reporter.

Missed one;

Index: linux-2.5.48/include/linux/kernel.h
===================================================================
RCS file: /build/cvsroot/linux-2.5.48/include/linux/kernel.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 kernel.h
--- linux-2.5.48/include/linux/kernel.h 18 Nov 2002 05:11:13 -0000 1.1.1.1
+++ linux-2.5.48/include/linux/kernel.h 20 Nov 2002 06:29:39 -0000
@@ -103,6 +103,7 @@
#define TAINT_FORCED_MODULE (1<<1)
#define TAINT_UNSAFE_SMP (1<<2)
#define TAINT_FORCED_RMMOD (1<<3)
+#define TAINT_UNKNOWN_STATE (1<<4)

extern void dump_stack(void);

Index: linux-2.5.48/kernel/panic.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.48/kernel/panic.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 panic.c
--- linux-2.5.48/kernel/panic.c 18 Nov 2002 05:13:12 -0000 1.1.1.1
+++ linux-2.5.48/kernel/panic.c 21 Nov 2002 07:30:10 -0000
@@ -114,10 +114,11 @@
{
static char buf[20];
if (tainted) {
- snprintf(buf, sizeof(buf), "Tainted: %c%c%c",
+ snprintf(buf, sizeof(buf), "Tainted: %c%c%c%c",
tainted & TAINT_PROPRIETORY_MODULE ? 'P' : 'G',
tainted & TAINT_FORCED_MODULE ? 'F' : ' ',
- tainted & TAINT_UNSAFE_SMP ? 'S' : ' ');
+ tainted & TAINT_UNSAFE_SMP ? 'S' : ' ',
+ tainted & TAINT_UNKNOWN_STATE ? 'U' : ' ');
}
else
snprintf(buf, sizeof(buf), "Not tainted");
Index: linux-2.5.48/arch/i386/mm/fault.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.48/arch/i386/mm/fault.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 fault.c
--- linux-2.5.48/arch/i386/mm/fault.c 18 Nov 2002 05:11:52 -0000 1.1.1.1
+++ linux-2.5.48/arch/i386/mm/fault.c 21 Nov 2002 06:46:43 -0000
@@ -135,6 +135,7 @@
console_loglevel = 15; /* NMI oopser may have shut the console up */
printk(" ");
console_loglevel = loglevel_save;
+ tainted |= TAINT_UNKNOWN_STATE; /* flag that we've gone through one oops 'U' */
}

asmlinkage void do_invalid_op(struct pt_regs *, unsigned long);
Index: linux-2.5.48/lib/bust_spinlocks.c
===================================================================
RCS file: /build/cvsroot/linux-2.5.48/lib/bust_spinlocks.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 bust_spinlocks.c
--- linux-2.5.48/lib/bust_spinlocks.c 18 Nov 2002 05:12:57 -0000 1.1.1.1
+++ linux-2.5.48/lib/bust_spinlocks.c 21 Nov 2002 06:46:12 -0000
@@ -34,6 +34,7 @@
printk(" ");
console_loglevel = loglevel_save;
}
+ tainted |= TAINT_UNKNOWN_STATE; /* flag that we've gone through one oops 'U' */
}


-- 
function.linuxpower.ca

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/