[SCSI] mptbase: mpt_interrupt should return IRQ_NONE
The way mpt_interrupt() was coded, it was impossible for the unhandled interrupt detection logic to ever trigger. All interrupt handlers should return IRQ_NONE when they have nothing to do. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andrew Morton <akpm@osdl.com> Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
		
							parent
							
								
									376ac83078
								
							
						
					
					
						commit
						3e00a5b287
					
				| @ -369,20 +369,21 @@ static irqreturn_t | ||||
| mpt_interrupt(int irq, void *bus_id, struct pt_regs *r) | ||||
| { | ||||
| 	MPT_ADAPTER *ioc = bus_id; | ||||
| 	u32 pa; | ||||
| 	u32 pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo); | ||||
| 
 | ||||
| 	if (pa == 0xFFFFFFFF) | ||||
| 		return IRQ_NONE; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 *  Drain the reply FIFO! | ||||
| 	 */ | ||||
| 	while (1) { | ||||
| 		pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo); | ||||
| 		if (pa == 0xFFFFFFFF) | ||||
| 			return IRQ_HANDLED; | ||||
| 		else if (pa & MPI_ADDRESS_REPLY_A_BIT) | ||||
| 	do { | ||||
| 		if (pa & MPI_ADDRESS_REPLY_A_BIT) | ||||
| 			mpt_reply(ioc, pa); | ||||
| 		else | ||||
| 			mpt_turbo_reply(ioc, pa); | ||||
| 	} | ||||
| 		pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo); | ||||
| 	} while (pa != 0xFFFFFFFF); | ||||
| 
 | ||||
| 	return IRQ_HANDLED; | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user