Date: Wed, 7 Jun 2006 09:05:20 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/sk if_sk.c Message-ID: <200606070905.k5795Lvr005101@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
yongari 2006-06-07 09:05:20 UTC FreeBSD src repository Modified files: sys/dev/sk if_sk.c Log: 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 > Revision Changes Path 1.125 +13 -6 src/sys/dev/sk/if_sk.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606070905.k5795Lvr005101>