multiple packets were being received due to not flushing newly received packets from the ring buffer between receiving an interupt and pulling in the packets.
(Some ports did this already.)