From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lrgje-00010h-T7 for qemu-devel@nongnu.org; Wed, 08 Apr 2009 18:59:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lrgje-00010T-2D for qemu-devel@nongnu.org; Wed, 08 Apr 2009 18:59:10 -0400 Received: from [199.232.76.173] (port=45514 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lrgjd-00010Q-Qt for qemu-devel@nongnu.org; Wed, 08 Apr 2009 18:59:09 -0400 Received: from hall.aurel32.net ([88.191.82.174]:35398) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lrgjd-0002K5-Ec for qemu-devel@nongnu.org; Wed, 08 Apr 2009 18:59:09 -0400 Date: Thu, 9 Apr 2009 00:59:05 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH] pcnet: Avoid double conversion via PHYSADDR Message-ID: <20090408225905.GD23493@volta.aurel32.net> References: <49DB8E51.2000200@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <49DB8E51.2000200@siemens.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel@nongnu.org On Tue, Apr 07, 2009 at 07:33:05PM +0200, Jan Kiszka wrote: > rdra and tdra are already kept converted in the pcnet state structure. > Avoid converting derivatives a second time. The same case with the local > variable xmit_cxda: it already contains a converted cxda address. This > issue only causes troubles when using the pcnet in 16-bit legacy mode. > > Signed-off-by: Jan Kiszka > --- Thanks, applied. > hw/pcnet.c | 20 ++++++++++---------- > 1 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/hw/pcnet.c b/hw/pcnet.c > index 15167ac..be68f28 100644 > --- a/hw/pcnet.c > +++ b/hw/pcnet.c > @@ -964,11 +964,11 @@ static void pcnet_rdte_poll(PCNetState *s) > (BCR_SWSTYLE(s) ? 16 : 8 ); > #endif > > - CHECK_RMD(PHYSADDR(s,crda), bad); > + CHECK_RMD(crda, bad); > if (!bad) { > - CHECK_RMD(PHYSADDR(s,nrda), bad); > + CHECK_RMD(nrda, bad); > if (bad || (nrda == crda)) nrda = 0; > - CHECK_RMD(PHYSADDR(s,nnrd), bad); > + CHECK_RMD(nnrd, bad); > if (bad || (nnrd == crda)) nnrd = 0; > > s->csr[28] = crda & 0xffff; > @@ -980,11 +980,11 @@ static void pcnet_rdte_poll(PCNetState *s) > #ifdef PCNET_DEBUG > if (bad) { > printf("pcnet: BAD RMD RECORDS AFTER 0x" TARGET_FMT_plx "\n", > - PHYSADDR(s,crda)); > + crda); > } > } else { > printf("pcnet: BAD RMD RDA=0x" TARGET_FMT_plx "\n", > - PHYSADDR(s,crda)); > + crda); > #endif > } > } > @@ -1023,7 +1023,7 @@ static int pcnet_tdte_poll(PCNetState *s) > (CSR_XMTRL(s) - CSR_XMTRC(s)) * > (BCR_SWSTYLE(s) ? 16 : 8); > int bad = 0; > - CHECK_TMD(PHYSADDR(s, cxda),bad); > + CHECK_TMD(cxda, bad); > if (!bad) { > if (CSR_CXDA(s) != cxda) { > s->csr[60] = s->csr[34]; > @@ -1034,7 +1034,7 @@ static int pcnet_tdte_poll(PCNetState *s) > s->csr[34] = cxda & 0xffff; > s->csr[35] = cxda >> 16; > #ifdef PCNET_DEBUG_X > - printf("pcnet: BAD TMD XDA=0x%08x\n", PHYSADDR(s,cxda)); > + printf("pcnet: BAD TMD XDA=0x%08x\n", cxda); > #endif > } > } > @@ -1107,7 +1107,7 @@ static void pcnet_receive(void *opaque, const uint8_t *buf, int size) > nrda = s->rdra + > (CSR_RCVRL(s) - rcvrc) * > (BCR_SWSTYLE(s) ? 16 : 8 ); > - RMDLOAD(&rmd, PHYSADDR(s,nrda)); > + RMDLOAD(&rmd, nrda); > if (GET_FIELD(rmd.status, RMDS, OWN)) { > #ifdef PCNET_DEBUG_RMD > printf("pcnet - scan buffer: RCVRC=%d PREV_RCVRC=%d\n", > @@ -1319,12 +1319,12 @@ static void pcnet_transmit(PCNetState *s) > } else > if (s->xmit_pos >= 0) { > struct pcnet_TMD tmd; > - TMDLOAD(&tmd, PHYSADDR(s,xmit_cxda)); > + TMDLOAD(&tmd, xmit_cxda); > SET_FIELD(&tmd.misc, TMDM, BUFF, 1); > SET_FIELD(&tmd.misc, TMDM, UFLO, 1); > SET_FIELD(&tmd.status, TMDS, ERR, 1); > SET_FIELD(&tmd.status, TMDS, OWN, 0); > - TMDSTORE(&tmd, PHYSADDR(s,xmit_cxda)); > + TMDSTORE(&tmd, xmit_cxda); > s->csr[0] |= 0x0200; /* set TINT */ > if (!CSR_DXSUFLO(s)) { > s->csr[0] &= ~0x0010; > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net