Re: [PATCH][2.5] Add TAINT_UNKNOWN_STATE

From: Zwane Mwaikambo (zwane@holomorphy.com)
Date: Thu Nov 21 2002 - 02:59:43 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/



This archive was generated by hypermail 2b29 : Sat Nov 23 2002 - 22:00:35 EST