diff -r 2629f0b99e8d -r a9de774c9d02 src/dev/i8254xGBe.cc --- a/src/dev/i8254xGBe.cc Mon Feb 20 08:11:14 2012 -0800 +++ b/src/dev/i8254xGBe.cc Sat Mar 03 15:07:36 2012 -0600 @@ -1923,12 +1923,12 @@ igbe->anBegin("TXS", "Desc Writeback"); DPRINTF(EthernetDesc, "WTHRESH == 0, writing back descriptor\n"); writeback(0); - } else if (igbe->regs.txdctl.gran() && igbe->regs.txdctl.wthresh() >= + } else if (!igbe->regs.txdctl.gran() && igbe->regs.txdctl.wthresh() <= descInBlock(usedCache.size())) { DPRINTF(EthernetDesc, "used > WTHRESH, writing back descriptor\n"); igbe->anBegin("TXS", "Desc Writeback"); writeback((igbe->cacheBlockSize()-1)>>4); - } else if (igbe->regs.txdctl.wthresh() >= usedCache.size()) { + } else if (igbe->regs.txdctl.wthresh() <= usedCache.size()) { DPRINTF(EthernetDesc, "used > WTHRESH, writing back descriptor\n"); igbe->anBegin("TXS", "Desc Writeback"); writeback((igbe->cacheBlockSize()-1)>>4);