freebsd-dev/sys/dev/sk
Pyun YongHyeon ad25ff2b43 Fix watchdog timeout errors seen on a few systems.
SK-NET GENESIS document says reading SK_ISSR should stop generating
further interrupts(Since we drop a driver lock before invoking
ifp->if_input handler we should disable interrupts in ISR in order
to protect integrity of softc from subsequent interrupts). But it
seems that there is possibility of loosing interrupts between
reading SK_ISSR and determining which interrupts are reported.
To cope with the situation we continuously read SK_ISSR register
until there are no interrupts. However, it seems that the above
work around doesn't fix all cases. To protect watchdog handler
from triggering false alarm add a work around code which try to
reclaim pending Tx descriptors before resetting hardware. This
should fix occasional watchdog timeout errors seen on this driver.

Reported by:	Frank Behrens <frank AT pinky dot sax dot de >
Tested by:	Frank Behrens <frank AT pinky dot sax dot de >
2006-06-07 09:05:20 +00:00
..
if_sk.c Fix watchdog timeout errors seen on a few systems. 2006-06-07 09:05:20 +00:00
if_skreg.h Re-wrok PHY setup, media handling and dual-port detection. 2006-05-15 04:50:33 +00:00
xmaciireg.h Bring busdmafied sk(4) to all architectures. 2006-04-27 05:59:09 +00:00
yukonreg.h Bring busdmafied sk(4) to all architectures. 2006-04-27 05:59:09 +00:00