From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NSYQi-0006Ya-1b for qemu-devel@nongnu.org; Wed, 06 Jan 2010 11:08:16 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NSYQd-0006Ul-6M for qemu-devel@nongnu.org; Wed, 06 Jan 2010 11:08:15 -0500 Received: from [199.232.76.173] (port=54223 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NSYQd-0006UZ-39 for qemu-devel@nongnu.org; Wed, 06 Jan 2010 11:08:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:12391) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NSYQc-0002PL-IQ for qemu-devel@nongnu.org; Wed, 06 Jan 2010 11:08:10 -0500 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o06G890E017652 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 6 Jan 2010 11:08:09 -0500 From: Gerd Hoffmann Date: Wed, 6 Jan 2010 17:08:04 +0100 Message-Id: <1262794084-8020-6-git-send-email-kraxel@redhat.com> In-Reply-To: <1262794084-8020-1-git-send-email-kraxel@redhat.com> References: <1262794084-8020-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH 5/5] lsi: pass lsi_request to lsi_reselect List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann All callers of lsi_reselect have a lsi_request struct at hand anyway. So just pass it directly instead of having lsi_reselect search for it using the tag. Signed-off-by: Gerd Hoffmann --- hw/lsi53c895a.c | 23 +++++++---------------- 1 files changed, 7 insertions(+), 16 deletions(-) diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c index f28fc76..dbc8c66 100644 --- a/hw/lsi53c895a.c +++ b/hw/lsi53c895a.c @@ -371,7 +371,7 @@ static int lsi_dma_64bit(LSIState *s) static uint8_t lsi_reg_readb(LSIState *s, int offset); static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val); static void lsi_execute_script(LSIState *s); -static void lsi_reselect(LSIState *s, uint32_t tag); +static void lsi_reselect(LSIState *s, lsi_request *p); static inline uint32_t read_dword(LSIState *s, uint32_t addr) { @@ -430,7 +430,7 @@ static void lsi_update_irq(LSIState *s) "processes\n"); QTAILQ_FOREACH(p, &s->queue, next) { if (p->pending) { - lsi_reselect(s, p->tag); + lsi_reselect(s, p); break; } } @@ -589,24 +589,15 @@ static void lsi_add_msg_byte(LSIState *s, uint8_t data) } /* Perform reselection to continue a command. */ -static void lsi_reselect(LSIState *s, uint32_t tag) +static void lsi_reselect(LSIState *s, lsi_request *p) { - lsi_request *p; int id; - QTAILQ_FOREACH(p, &s->queue, next) { - if (p->tag == tag) - break; - } - if (p == NULL) { - BADF("Reselected non-existant command tag=0x%x\n", tag); - return; - } assert(s->current == NULL); QTAILQ_REMOVE(&s->queue, p, next); s->current = p; - id = (tag >> 8) & 0xf; + id = (p->tag >> 8) & 0xf; s->ssid = id | 0x80; /* LSI53C700 Family Compatibility, see LSI53C895A 4-73 */ if (!(s->dcntl & LSI_DCNTL_COM)) { @@ -620,7 +611,7 @@ static void lsi_reselect(LSIState *s, uint32_t tag) lsi_add_msg_byte(s, 0x80); if (s->current->tag & LSI_TAG_VALID) { lsi_add_msg_byte(s, 0x20); - lsi_add_msg_byte(s, tag & 0xff); + lsi_add_msg_byte(s, p->tag & 0xff); } if (lsi_irq_on_rsl(s)) { @@ -649,7 +640,7 @@ static int lsi_queue_tag(LSIState *s, uint32_t tag, uint32_t arg) (lsi_irq_on_rsl(s) && !(s->scntl1 & LSI_SCNTL1_CON) && !(s->istat0 & (LSI_ISTAT0_SIP | LSI_ISTAT0_DIP)))) { /* Reselect device. */ - lsi_reselect(s, tag); + lsi_reselect(s, p); return 0; } else { DPRINTF("Queueing IO tag=0x%x\n", tag); @@ -914,7 +905,7 @@ static void lsi_wait_reselect(LSIState *s) QTAILQ_FOREACH(p, &s->queue, next) { if (p->pending) { - lsi_reselect(s, p->tag); + lsi_reselect(s, p); break; } } -- 1.6.5.2