qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [4225] PCnet: Allow more then two TMDs (Jan Kiszka)


From: Blue Swirl
Subject: [Qemu-devel] [4225] PCnet: Allow more then two TMDs (Jan Kiszka)
Date: Sun, 20 Apr 2008 10:59:29 +0000

Revision: 4225
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4225
Author:   blueswir1
Date:     2008-04-20 10:59:29 +0000 (Sun, 20 Apr 2008)

Log Message:
-----------
PCnet: Allow more then two TMDs (Jan Kiszka)

Modified Paths:
--------------
    trunk/hw/pcnet.c

Modified: trunk/hw/pcnet.c
===================================================================
--- trunk/hw/pcnet.c    2008-04-20 06:28:28 UTC (rev 4224)
+++ trunk/hw/pcnet.c    2008-04-20 10:59:29 UTC (rev 4225)
@@ -1249,19 +1249,18 @@
 #endif
         if (GET_FIELD(tmd.status, TMDS, STP)) {
             s->xmit_pos = 0;
-            if (!GET_FIELD(tmd.status, TMDS, ENP)) {
-                int bcnt = 4096 - GET_FIELD(tmd.length, TMDL, BCNT);
-                s->phys_mem_read(s->dma_opaque, PHYSADDR(s, tmd.tbadr),
-                                 s->buffer, bcnt, CSR_BSWP(s));
-                s->xmit_pos += bcnt;
-            }
             xmit_cxda = PHYSADDR(s,CSR_CXDA(s));
         }
-        if (GET_FIELD(tmd.status, TMDS, ENP) && (s->xmit_pos >= 0)) {
+        if (!GET_FIELD(tmd.status, TMDS, ENP)) {
             int bcnt = 4096 - GET_FIELD(tmd.length, TMDL, BCNT);
             s->phys_mem_read(s->dma_opaque, PHYSADDR(s, tmd.tbadr),
                              s->buffer + s->xmit_pos, bcnt, CSR_BSWP(s));
             s->xmit_pos += bcnt;
+        } else if (s->xmit_pos >= 0) {
+            int bcnt = 4096 - GET_FIELD(tmd.length, TMDL, BCNT);
+            s->phys_mem_read(s->dma_opaque, PHYSADDR(s, tmd.tbadr),
+                             s->buffer + s->xmit_pos, bcnt, CSR_BSWP(s));
+            s->xmit_pos += bcnt;
 #ifdef PCNET_DEBUG
             printf("pcnet_transmit size=%d\n", s->xmit_pos);
 #endif






reply via email to

[Prev in Thread] Current Thread [Next in Thread]