void ei_tx_err (struct net_device * dev);
A transmitter error has happened. Most likely excess collisions (which is a fairly normal condition). If the error is one where the Tx will have been aborted, we try and send another one right away, instead of letting the failed packet sit and collect dust in the Tx buffer. This is a much better solution as it avoids kernel based Tx timeouts, and an unnecessary card reset.
Called with lock held.