Otherwise interrupts whicha are raised during frame processing may
be lost.
---
 software/libnet/microudp.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/software/libnet/microudp.c b/software/libnet/microudp.c
index 71c45a2..7abbd2a 100644
--- a/software/libnet/microudp.c
+++ b/software/libnet/microudp.c
@@ -391,6 +391,7 @@ void microudp_start(unsigned char *macaddr, unsigned int ip)
 void microudp_service()
 {
        if(irq_pending() & IRQ_ETHRX) {
+               irq_ack(IRQ_ETHRX);
                if(CSR_MINIMAC_STATE0 == MINIMAC_STATE_PENDING) {
                        rxlen = CSR_MINIMAC_COUNT0;
                        rxbuffer = rxbuffer0;
@@ -403,6 +404,5 @@ void microudp_service()
                        process_frame();
                        CSR_MINIMAC_STATE1 = MINIMAC_STATE_LOADED;
                }
-               irq_ack(IRQ_ETHRX);
        }
 }
-- 
1.7.2.3

_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode
Twitter: www.twitter.com/milkymistvj
Ideas? http://milkymist.uservoice.com

Reply via email to