From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JnXGe-0000q9-AT for qemu-devel@nongnu.org; Sun, 20 Apr 2008 06:59:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JnXGd-0000pl-8Z for qemu-devel@nongnu.org; Sun, 20 Apr 2008 06:59:31 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JnXGd-0000pi-0D for qemu-devel@nongnu.org; Sun, 20 Apr 2008 06:59:31 -0400 Received: from savannah.gnu.org ([199.232.41.3] helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JnXGc-0003IA-Lm for qemu-devel@nongnu.org; Sun, 20 Apr 2008 06:59:30 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1JnXGb-0006Py-Uv for qemu-devel@nongnu.org; Sun, 20 Apr 2008 10:59:30 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1JnXGb-0006Pu-ML for qemu-devel@nongnu.org; Sun, 20 Apr 2008 10:59:29 +0000 MIME-Version: 1.0 Errors-To: blueswir1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Blue Swirl Message-Id: Date: Sun, 20 Apr 2008 10:59:29 +0000 Subject: [Qemu-devel] [4225] PCnet: Allow more then two TMDs (Jan Kiszka) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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