From 2c70b09005a12761e9fa2a42533a29367f253ac5 Mon Sep 17 00:00:00 2001 From: Hidetoshi Shimokawa Date: Mon, 30 Apr 2007 13:51:13 +0000 Subject: [PATCH] MFp4: - Update state in fw_xferq_dorain() after removed from the send queue. - Remove unnecessary 'goto err;". MFC after: 1 week --- sys/dev/firewire/firewire.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c index cd0a4c172a17..7f148220ad9b 100644 --- a/sys/dev/firewire/firewire.c +++ b/sys/dev/firewire/firewire.c @@ -496,6 +496,7 @@ fw_xferq_drain(struct fw_xferq *xferq) STAILQ_REMOVE_HEAD(&xferq->q, link); xferq->queued --; xfer->resp = EAGAIN; + xfer->state = FWXF_SENTERR; fw_xfer_done(xfer); } } @@ -1824,10 +1825,10 @@ fw_rcv(struct fw_rcv_buf *rb) (fp->mode.hdr.tlrt >> 2)^3); if (rb->xfer == NULL) { printf("no use...\n"); - goto err; + return; } #else - goto err; + return; #endif } fw_rcv_copy(rb); @@ -1871,7 +1872,7 @@ fw_rcv(struct fw_rcv_buf *rb) fp->mode.hdr.src, ntohl(fp->mode.wreqq.data)); if (rb->fc->status == FWBUSRESET) { printf("fw_rcv: cannot respond(bus reset)!\n"); - goto err; + return; } rb->xfer = fw_xfer_alloc(M_FWXFER); if(rb->xfer == NULL){ @@ -1909,15 +1910,17 @@ fw_rcv(struct fw_rcv_buf *rb) fw_xfer_free(rb->xfer); return; } - goto err; + return; } len = 0; for (i = 0; i < rb->nvec; i ++) len += rb->vec[i].iov_len; rb->xfer = STAILQ_FIRST(&bind->xferlist); if (rb->xfer == NULL) { +#if 1 printf("Discard a packet for this bind.\n"); - goto err; +#endif + return; } STAILQ_REMOVE_HEAD(&bind->xferlist, link); fw_rcv_copy(rb); @@ -1935,13 +1938,14 @@ fw_rcv(struct fw_rcv_buf *rb) #endif if(xferq->queued >= xferq->maxq) { printf("receive queue is full\n"); - goto err; + return; } /* XXX get xfer from xfer queue, we don't need copy for per packet mode */ rb->xfer = fw_xfer_alloc_buf(M_FWXFER, 0, /* XXX */ vec[0].iov_len); - if (rb->xfer == NULL) goto err; + if (rb->xfer == NULL) + return; fw_rcv_copy(rb) s = splfw(); xferq->queued++; @@ -1969,8 +1973,6 @@ fw_rcv(struct fw_rcv_buf *rb) printf("fw_rcv: unknow tcode %d\n", tcode); break; } -err: - return; } /*