Clear the interrupt prior to servicing the interrupt - previously it was the other way around.

This commit is contained in:
Richard Barry 2008-03-07 11:08:10 +00:00
parent bf5cd55c55
commit ade2da38ed

View file

@ -245,13 +245,12 @@ XIntc_VectorTableEntry *pxTable;
{ {
if( ulInterruptStatus & 0x01UL ) if( ulInterruptStatus & 0x01UL )
{ {
/* Clear the pending interrupt. */
XIntc_mAckIntr( pxInterruptController->BaseAddress, ulInterruptMask );
/* Call the registered handler. */ /* Call the registered handler. */
pxTable = &( pxInterruptController->HandlerTable[ xInterruptNumber ] ); pxTable = &( pxInterruptController->HandlerTable[ xInterruptNumber ] );
pxTable->Handler( pxTable->CallBackRef ); pxTable->Handler( pxTable->CallBackRef );
/* Clear the pending interrupt. */
XIntc_mAckIntr( pxInterruptController->BaseAddress, ulInterruptMask );
break;
} }
/* Check the next interrupt. */ /* Check the next interrupt. */