Here's a fix for e1000 reset as suggested by Andy Gospodarek and Anthony PERARD, written in a way that doesn't require forward declarations, and with reset clearing interrupts.
Changes from v1: - value written was stored in CTRL register so it will be non 0 after reset. Notes: some internal state: uint32_t rxbuf_size; int check_rxov; isn't cleared in reset need to check that it's ok. -- MST