mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-11-04 16:52:06 +10:00 
			
		
		
		
	panic: add TAINT_SOFTLOCKUP
This taint flag will be set if the system has ever entered a softlockup state. Similar to TAINT_WARN it is useful to know whether or not the system has been in a softlockup state when debugging. [akpm@linux-foundation.org: apply the taint before calling panic()] Signed-off-by: Josh Hunt <johunt@akamai.com> Cc: Jason Baron <jbaron@akamai.com> Cc: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									1da85fdff5
								
							
						
					
					
						commit
						69361eef90
					
				@ -268,6 +268,8 @@ characters, each representing a particular tainted value.
 | 
			
		||||
 14: 'E' if an unsigned module has been loaded in a kernel supporting
 | 
			
		||||
     module signature.
 | 
			
		||||
 | 
			
		||||
 15: 'L' if a soft lockup has previously occurred on the system.
 | 
			
		||||
 | 
			
		||||
The primary reason for the 'Tainted: ' string is to tell kernel
 | 
			
		||||
debuggers if this is a clean kernel or if anything unusual has
 | 
			
		||||
occurred.  Tainting is permanent: even if an offending module is
 | 
			
		||||
 | 
			
		||||
@ -826,6 +826,7 @@ can be ORed together:
 | 
			
		||||
4096 - An out-of-tree module has been loaded.
 | 
			
		||||
8192 - An unsigned module has been loaded in a kernel supporting module
 | 
			
		||||
       signature.
 | 
			
		||||
16384 - A soft lockup has previously occurred on the system.
 | 
			
		||||
 | 
			
		||||
==============================================================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -470,6 +470,7 @@ extern enum system_states {
 | 
			
		||||
#define TAINT_FIRMWARE_WORKAROUND	11
 | 
			
		||||
#define TAINT_OOT_MODULE		12
 | 
			
		||||
#define TAINT_UNSIGNED_MODULE		13
 | 
			
		||||
#define TAINT_SOFTLOCKUP		14
 | 
			
		||||
 | 
			
		||||
extern const char hex_asc[];
 | 
			
		||||
#define hex_asc_lo(x)	hex_asc[((x) & 0x0f)]
 | 
			
		||||
 | 
			
		||||
@ -224,6 +224,7 @@ static const struct tnt tnts[] = {
 | 
			
		||||
	{ TAINT_FIRMWARE_WORKAROUND,	'I', ' ' },
 | 
			
		||||
	{ TAINT_OOT_MODULE,		'O', ' ' },
 | 
			
		||||
	{ TAINT_UNSIGNED_MODULE,	'E', ' ' },
 | 
			
		||||
	{ TAINT_SOFTLOCKUP,		'L', ' ' },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -368,6 +368,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
 | 
			
		||||
			smp_mb__after_atomic();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
 | 
			
		||||
		if (softlockup_panic)
 | 
			
		||||
			panic("softlockup: hung tasks");
 | 
			
		||||
		__this_cpu_write(soft_watchdog_warn, true);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user