changeset 64c434f26d58 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=64c434f26d58
description:
        Igbe: Newer kernels seem to allow TSO headers and packet data to be in 
one desc

        Implement some code we used to panic on as it actually does happen with 
the
        e1000 driver in Linux 3.3+. We used to assume that a TSO header would 
never
        be part of a larger payload, however it appears as though it now can be.

diffstat:

 src/dev/i8254xGBe.cc |  8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diffs (18 lines):

diff -r b91e4bec7a76 -r 64c434f26d58 src/dev/i8254xGBe.cc
--- a/src/dev/i8254xGBe.cc      Fri Sep 07 14:20:53 2012 -0500
+++ b/src/dev/i8254xGBe.cc      Fri Sep 07 14:20:53 2012 -0500
@@ -1650,11 +1650,9 @@
         unusedCache.pop_front();
         usedCache.push_back(desc);
     } else {
-        // I don't think this case happens, I think the headrer is always
-        // it's own packet, if it wasn't it might be as simple as just
-        // incrementing descBytesUsed by the header length, but I'm not
-        // completely sure
-        panic("TSO header part of bigger packet, not implemented\n");
+        DPRINTF(EthernetDesc, "TSO: header part of larger payload\n");
+        tsoDescBytesUsed = tsoHeaderLen;
+        tsoLoadedHeader = true;
     }
     enableSm();
     igbe->checkDrain();
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to