Bluetooth: Redo checks in IRQ handler for shared IRQ support
Commit ac019360fe changed the irq handler logic to BUG_ON rather than
returning IRQ_NONE when the incoming argument is invalid.  While this
works in most cases, it doesn't work when the IRQ is shared with other
devices (or when DEBUG_SHIRQ is enabled).
So revert the previous change and replace the warning message with a
comment explaining that we want this behavior.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
			
			
This commit is contained in:
		
							parent
							
								
									e420aba331
								
							
						
					
					
						commit
						7427847d2d
					
				| @ -503,7 +503,9 @@ static irqreturn_t bluecard_interrupt(int irq, void *dev_inst) | ||||
| 	unsigned int iobase; | ||||
| 	unsigned char reg; | ||||
| 
 | ||||
| 	BUG_ON(!info->hdev); | ||||
| 	if (!info || !info->hdev) | ||||
| 		/* our irq handler is shared */ | ||||
| 		return IRQ_NONE; | ||||
| 
 | ||||
| 	if (!test_bit(CARD_READY, &(info->hw_state))) | ||||
| 		return IRQ_HANDLED; | ||||
|  | ||||
| @ -345,7 +345,9 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst) | ||||
| 	int iir; | ||||
| 	irqreturn_t r = IRQ_NONE; | ||||
| 
 | ||||
| 	BUG_ON(!info->hdev); | ||||
| 	if (!info || !info->hdev) | ||||
| 		/* our irq handler is shared */ | ||||
| 		return IRQ_NONE; | ||||
| 
 | ||||
| 	iobase = info->p_dev->io.BasePort1; | ||||
| 
 | ||||
|  | ||||
| @ -295,7 +295,9 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst) | ||||
| 	int iir, lsr; | ||||
| 	irqreturn_t r = IRQ_NONE; | ||||
| 
 | ||||
| 	BUG_ON(!info->hdev); | ||||
| 	if (!info || !info->hdev) | ||||
| 		/* our irq handler is shared */ | ||||
| 		return IRQ_NONE; | ||||
| 
 | ||||
| 	iobase = info->p_dev->io.BasePort1; | ||||
| 
 | ||||
|  | ||||
| @ -299,7 +299,9 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst) | ||||
| 	int iir, lsr; | ||||
| 	irqreturn_t r = IRQ_NONE; | ||||
| 
 | ||||
| 	BUG_ON(!info->hdev); | ||||
| 	if (!info || !info->hdev) | ||||
| 		/* our irq handler is shared */ | ||||
| 		return IRQ_NONE; | ||||
| 
 | ||||
| 	iobase = info->p_dev->io.BasePort1; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user