cvs commit: src/sys/dev/sk if_sk.c

Pyun YongHyeon yongari at FreeBSD.org
Wed Jun 7 10:00:44 UTC 2006


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


More information about the cvs-src mailing list