diff options
Diffstat (limited to 'sys/dev/firewire/fwdma.c')
-rw-r--r-- | sys/dev/firewire/fwdma.c | 9 |
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); |