> Did the same sequence of read/writes happen before 0845d45e900c? Or > did 0845d45e900c add additional writes, not just move them around?
The sequence of read/writes happened before 0845d45e900c because the similar writel() exists in ew32() above the writel() moved by 0845d45e900c. The commit 0845d45e900c moved writel() in e1000_clean_tx/rx_ring() to e1000_configure_tx/rx() to avoid null pointer dereference. But since the same writel() exists in e1000_configure_tx/rx(), we just needed to remove writel() from e1000_clean_rx/tx_ring().