summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/fwdev.c
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2003-02-03 07:33:31 +0000
committersimokawa <simokawa@FreeBSD.org>2003-02-03 07:33:31 +0000
commitafb9eb67e2cada491999bc9223b413ffd6d32de4 (patch)
tree6c767b449cd12bf15b57f8a07b115bd932661805 /sys/dev/firewire/fwdev.c
parent3fe8dc7ecfb88fd252d48b18419c1fcb38ec825c (diff)
downloadFreeBSD-src-afb9eb67e2cada491999bc9223b413ffd6d32de4.zip
FreeBSD-src-afb9eb67e2cada491999bc9223b413ffd6d32de4.tar.gz
- Take malloc type as an argument in fw_xfer_alloc().
- Fix overwrite problem of freed buffers. It was rare but could happen when fwohci_arcv() is called before fwohci_txd() is called for the transcation. - Drain AT queues and pend AR queues on SID receive rather than BUS reset to make sure DMA actually stops. - Do agent reset in sbp_timeout().
Diffstat (limited to 'sys/dev/firewire/fwdev.c')
-rw-r--r--sys/dev/firewire/fwdev.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/firewire/fwdev.c b/sys/dev/firewire/fwdev.c
index 1ef9ec4..13c84a3 100644
--- a/sys/dev/firewire/fwdev.c
+++ b/sys/dev/firewire/fwdev.c
@@ -455,7 +455,7 @@ dvloop:
}
#endif
if(xferq != NULL){
- xfer = fw_xfer_alloc();
+ xfer = fw_xfer_alloc(M_FWXFER);
if(xfer == NULL){
err = ENOMEM;
return err;
@@ -734,7 +734,7 @@ fw_ioctl (dev_t dev, u_long cmd, caddr_t data, int flag, fw_proc *td)
ibufreq->tx.psize = sc->fc->it[sub]->psize;
break;
case FW_ASYREQ:
- xfer = fw_xfer_alloc();
+ xfer = fw_xfer_alloc(M_FWXFER);
if(xfer == NULL){
err = ENOMEM;
return err;
@@ -821,7 +821,7 @@ error:
fwb->start_lo = bindreq->start.lo;
fwb->addrlen = bindreq->len;
- xfer = fw_xfer_alloc();
+ xfer = fw_xfer_alloc(M_FWXFER);
if(xfer == NULL){
err = ENOMEM;
return err;
OpenPOWER on IntegriCloud