summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2007-04-30 13:51:13 +0000
committersimokawa <simokawa@FreeBSD.org>2007-04-30 13:51:13 +0000
commit86a25e2852e1b099d529d404f77a8bb21546d760 (patch)
treec9aa2e1becbe1cc28ed06177952d66c66f40a572 /sys/dev/firewire
parent21d4d06eead25f9b28b2940969466efa55ac9170 (diff)
downloadFreeBSD-src-86a25e2852e1b099d529d404f77a8bb21546d760.zip
FreeBSD-src-86a25e2852e1b099d529d404f77a8bb21546d760.tar.gz
MFp4:
- Update state in fw_xferq_dorain() after removed from the send queue. - Remove unnecessary 'goto err;". MFC after: 1 week
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r--sys/dev/firewire/firewire.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index cd0a4c1..7f14822 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;
}
/*
OpenPOWER on IntegriCloud