changeset 1997:10018fa77fed

Fix race when handling interrupt events - from Fernando Flores
author gthomas
date Wed, 22 Jun 2005 23:25:36 +0000
parents 2c3a824f07b9
children 7237127655fc
files packages/devs/eth/powerpc/fec/current/ChangeLog packages/devs/eth/powerpc/fec/current/src/if_fec.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/eth/powerpc/fec/current/ChangeLog
+++ b/packages/devs/eth/powerpc/fec/current/ChangeLog
@@ -1,3 +1,8 @@
+2005-06-22  Gary Thomas  <gary@mlbassoc.com>
+
+	* src/if_fec.c (fec_eth_int): Avoid race when handling interrupt
+	events - reported by Fernando Flores 
+
 2004-10-11  Harald Kuethe  <hkuethe@controlware.de>
 
        * src/if_fec.c (fec_eth_RxEvent): remove crc from packet.
--- a/packages/devs/eth/powerpc/fec/current/src/if_fec.c
+++ b/packages/devs/eth/powerpc/fec/current/src/if_fec.c
@@ -763,13 +763,13 @@ fec_eth_int(struct eth_drv_sc *sc)
     unsigned long event;
 
     while ((event = qi->fec->iEvent) != 0) {
+        qi->fec->iEvent = event;  // Reset the bits we handled
         if ((event & iEvent_TFINT) != 0) {
             fec_eth_TxEvent(sc);
         }
         if ((event & iEvent_RFINT) != 0) {
             fec_eth_RxEvent(sc);
         }
-        qi->fec->iEvent = event;  // Reset the bits we handled
     }
 }