summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/fwdma.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/firewire/fwdma.c')
-rw-r--r--sys/dev/firewire/fwdma.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/firewire/fwdma.c b/sys/dev/firewire/fwdma.c
index 14b4903..a16d233 100644
--- a/sys/dev/firewire/fwdma.c
+++ b/sys/dev/firewire/fwdma.c
@@ -38,6 +38,8 @@
#include <sys/types.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
#include <sys/bus.h>
#include <machine/bus.h>
@@ -74,7 +76,8 @@ fwdma_malloc(struct firewire_comm *fc, int alignment, bus_size_t size,
/*maxsize*/ size,
/*nsegments*/ 1,
/*maxsegsz*/ BUS_SPACE_MAXSIZE_32BIT,
- /*flags*/ BUS_DMA_ALLOCNOW, &dma->dma_tag);
+ /*flags*/ BUS_DMA_ALLOCNOW,
+ /*lockfunc*/busdma_lock_mutex,/*lockarg*/&Giant, &dma->dma_tag);
if (err) {
printf("fwdma_malloc: failed(1)\n");
return(NULL);
@@ -167,7 +170,9 @@ fwdma_malloc_multiseg(struct firewire_comm *fc, int alignment,
/*maxsize*/ ssize,
/*nsegments*/ 1,
/*maxsegsz*/ BUS_SPACE_MAXSIZE_32BIT,
- /*flags*/ BUS_DMA_ALLOCNOW, &am->dma_tag)) {
+ /*flags*/ BUS_DMA_ALLOCNOW,
+ /*lockfunc*/busdma_lock_mutex,
+ /*lockarg*/&Giant, &am->dma_tag)) {
printf("fwdma_malloc_multiseg: tag_create failed\n");
free(am, M_FW);
return(NULL);
OpenPOWER on IntegriCloud