I don't know this stuff in enough detail to vet the code more than trivially. But I do notice one minor issue and one possible issue:
>> /* >> + * mii_tick == 0 means it's the first tick after changing the media or >> + * the link became down since the last tick (see above), so return with >> + * 0 to update the status. >> + */ >> + if (sc->mii_ticks == 0) >> + return (0); >> + >> + /* Now increment the tick */ >> + sc->mii_ticks++; (a) The comment says mii_tick but the code says mii_ticks. (b) If mii_ticks is zero, it remains zero, so unless something else changes it, it will stay stuck at zero. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B