git: jme: Don't immediately recycle the TX descriptor even if it is owned by us.
sephe at crater.dragonflybsd.org
Sun Aug 19 01:05:01 PDT 2012
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Sun Aug 19 15:56:21 2012 +0800
jme: Don't immediately recycle the TX descriptor even if it is owned by us.
This chip will always update the TX descriptor's 32bits fields in order,
so even if the status field has been updated, i.e. OWN is cleared, it still
does not mean that the buflen field has been updated. To avoid this race
we don't immediately recycle the currently checking TX descriptor. Instead,
next TX descriptor's OWN bit is checked, if it is cleared, then the updating
of the currently checked TX descrptor is really done.
This is intended to fix the seldom watchdog timeout that was observed on this
Thank devinchiu at jmicron.com very much for providing necessary information.
Summary of changes:
sys/dev/netif/jme/if_jme.c | 31 +++++++++++++++++++++++++++----
sys/dev/netif/jme/if_jmevar.h | 1 +
2 files changed, 28 insertions(+), 4 deletions(-)
DragonFly BSD source repository
More information about the Commits