forked from mirrors/linux
		
	 3a43e05f4d
			
		
	
	
		3a43e05f4d
		
	
	
	
	
		
			
			The detection of spurios interrupts is currently limited to first level handler. In force-threaded mode we never notice if the threaded irq does not feel responsible. This patch catches the return value of the threaded handler and forwards it to the spurious detector. If the primary handler returns only IRQ_WAKE_THREAD then the spourious detector ignores it because it gets called again from the threaded handler. [ tglx: Report the erroneous return value early and bail out ] Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Link: http://lkml.kernel.org/r/1306824972-27067-2-git-send-email-sebastian@breakpoint.cc Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			432 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			432 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _LINUX_IRQRETURN_H
 | |
| #define _LINUX_IRQRETURN_H
 | |
| 
 | |
| /**
 | |
|  * enum irqreturn
 | |
|  * @IRQ_NONE		interrupt was not from this device
 | |
|  * @IRQ_HANDLED		interrupt was handled by this device
 | |
|  * @IRQ_WAKE_THREAD	handler requests to wake the handler thread
 | |
|  */
 | |
| enum irqreturn {
 | |
| 	IRQ_NONE		= (0 << 0),
 | |
| 	IRQ_HANDLED		= (1 << 0),
 | |
| 	IRQ_WAKE_THREAD		= (1 << 1),
 | |
| };
 | |
| 
 | |
| typedef enum irqreturn irqreturn_t;
 | |
| #define IRQ_RETVAL(x)	((x) != IRQ_NONE)
 | |
| 
 | |
| #endif
 |