diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2009-01-23 17:19:47 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2009-01-23 17:19:47 -0500 |
commit | 37ffe52ca406405ad42f9444286a7d1deef29a9c (patch) | |
tree | 0b46b5370c1000ff7a0ffe8db02d943f806277c8 /src/dev | |
parent | 10fc45da27f0c18c1a8b90af3d76127fc4467391 (diff) | |
download | gem5-37ffe52ca406405ad42f9444286a7d1deef29a9c.tar.xz |
IGbE: Fix two e1000 driver bugs that I missed before.
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/i8254xGBe.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dev/i8254xGBe.cc b/src/dev/i8254xGBe.cc index cf6692fb4..d6a888b21 100644 --- a/src/dev/i8254xGBe.cc +++ b/src/dev/i8254xGBe.cc @@ -1108,6 +1108,7 @@ IGbE::RxDescCache::unserialize(Checkpoint *cp, const std::string §ion) IGbE::TxDescCache::TxDescCache(IGbE *i, const std::string n, int s) : DescCache<TxDesc>(i,n, s), pktDone(false), isTcp(false), pktWaiting(false), + completionAddress(0), completionEnabled(false), useTso(false), pktEvent(this), headerEvent(this), nullEvent(this) { @@ -1319,7 +1320,8 @@ IGbE::TxDescCache::pktComplete() if ((!TxdOp::eop(desc) && !useTso) || - (pktPtr->length < ( tsoMss + tsoHeaderLen) && tsoTotalLen != tsoUsedLen)) { + (pktPtr->length < ( tsoMss + tsoHeaderLen) && + tsoTotalLen != tsoUsedLen && useTso)) { assert(!useTso || (tsoDescBytesUsed == TxdOp::getLen(desc))); unusedCache.pop_front(); usedCache.push_back(desc); |