summaryrefslogtreecommitdiffstats
path: root/sys/dev/mly
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2003-08-11 03:39:41 +0000
committerscottl <scottl@FreeBSD.org>2003-08-11 03:39:41 +0000
commit39ed719ae9860e2b98656ad08b4de2ea5118cfc0 (patch)
tree9b046afa3e2ce46d7512eeb316f3bab28f2621fa /sys/dev/mly
parent2a20cf3396d6f697ba6298d2dc11a5f2b46fd722 (diff)
downloadFreeBSD-src-39ed719ae9860e2b98656ad08b4de2ea5118cfc0.zip
FreeBSD-src-39ed719ae9860e2b98656ad08b4de2ea5118cfc0.tar.gz
Don't provide mutexes for static busdma allocations.
Diffstat (limited to 'sys/dev/mly')
-rw-r--r--sys/dev/mly/mly.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/sys/dev/mly/mly.c b/sys/dev/mly/mly.c
index d220773..874c0e3 100644
--- a/sys/dev/mly/mly.c
+++ b/sys/dev/mly/mly.c
@@ -442,9 +442,8 @@ mly_pci_attach(struct mly_softc *sc)
NULL, NULL, /* filter, filterarg */
sizeof(union mly_command_packet) * MLY_MAX_COMMANDS, 1, /* maxsize, nsegments */
BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */
- 0, /* flags */
- busdma_lock_mutex, /* lockfunc */
- &Giant, /* lockarg */
+ BUS_DMA_ALLOCNOW, /* flags */
+ NULL, NULL, /* lockfunc, lockarg */
&sc->mly_packet_dmat)) {
mly_printf(sc, "can't allocate command packet DMA tag\n");
goto fail;
@@ -583,17 +582,16 @@ mly_sg_map(struct mly_softc *sc)
* Create a single tag describing a region large enough to hold all of
* the s/g lists we will need.
*/
- segsize = sizeof(struct mly_sg_entry) * MLY_MAX_COMMANDS * MLY_MAX_SGENTRIES;
+ segsize = sizeof(struct mly_sg_entry) * MLY_MAX_COMMANDS *MLY_MAX_SGENTRIES;
if (bus_dma_tag_create(sc->mly_parent_dmat, /* parent */
- 1, 0, /* alignment, boundary */
+ 1, 0, /* alignment,boundary */
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
segsize, 1, /* maxsize, nsegments */
BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */
- 0, /* flags */
- busdma_lock_mutex, /* lockfunc */
- &Giant, /* lockarg */
+ BUS_DMA_ALLOCNOW, /* flags */
+ NULL, NULL, /* lockfunc, lockarg */
&sc->mly_sg_dmat)) {
mly_printf(sc, "can't allocate scatter/gather DMA tag\n");
return(ENOMEM);
@@ -606,11 +604,14 @@ mly_sg_map(struct mly_softc *sc)
* XXX this assumes we can get enough space for all the s/g maps in one
* contiguous slab.
*/
- if (bus_dmamem_alloc(sc->mly_sg_dmat, (void **)&sc->mly_sg_table, BUS_DMA_NOWAIT, &sc->mly_sg_dmamap)) {
+ if (bus_dmamem_alloc(sc->mly_sg_dmat, (void **)&sc->mly_sg_table,
+ BUS_DMA_NOWAIT, &sc->mly_sg_dmamap)) {
mly_printf(sc, "can't allocate s/g table\n");
return(ENOMEM);
}
- bus_dmamap_load(sc->mly_sg_dmat, sc->mly_sg_dmamap, sc->mly_sg_table, segsize, mly_sg_map_helper, sc, 0);
+ if (bus_dmamap_load(sc->mly_sg_dmat, sc->mly_sg_dmamap, sc->mly_sg_table,
+ segsize, mly_sg_map_helper, sc, BUS_DMA_NOWAIT) != 0)
+ return (ENOMEM);
return(0);
}
@@ -640,15 +641,14 @@ mly_mmbox_map(struct mly_softc *sc)
* memory mailbox structure.
*/
if (bus_dma_tag_create(sc->mly_parent_dmat, /* parent */
- 1, 0, /* alignment, boundary */
+ 1, 0, /* alignment,boundary */
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
sizeof(struct mly_mmbox), 1, /* maxsize, nsegments */
BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */
- 0, /* flags */
- busdma_lock_mutex, /* lockfunc */
- &Giant, /* lockarg */
+ BUS_DMA_ALLOCNOW, /* flags */
+ NULL, NULL, /* lockfunc, lockarg */
&sc->mly_mmbox_dmat)) {
mly_printf(sc, "can't allocate memory mailbox DMA tag\n");
return(ENOMEM);
@@ -661,8 +661,10 @@ mly_mmbox_map(struct mly_softc *sc)
mly_printf(sc, "can't allocate memory mailbox\n");
return(ENOMEM);
}
- bus_dmamap_load(sc->mly_mmbox_dmat, sc->mly_mmbox_dmamap, sc->mly_mmbox, sizeof(struct mly_mmbox),
- mly_mmbox_map_helper, sc, 0);
+ if (bus_dmamap_load(sc->mly_mmbox_dmat, sc->mly_mmbox_dmamap, sc->mly_mmbox,
+ sizeof(struct mly_mmbox), mly_mmbox_map_helper, sc,
+ BUS_DMA_NOWAIT) != 0)
+ return (ENOMEM);
bzero(sc->mly_mmbox, sizeof(*sc->mly_mmbox));
return(0);
@@ -1755,9 +1757,10 @@ mly_alloc_commands(struct mly_softc *sc)
BUS_DMA_NOWAIT, &sc->mly_packetmap)) {
return(ENOMEM);
}
- bus_dmamap_load(sc->mly_packet_dmat, sc->mly_packetmap, sc->mly_packet,
- ncmd * sizeof(union mly_command_packet),
- mly_alloc_commands_map, sc, 0);
+ if (bus_dmamap_load(sc->mly_packet_dmat, sc->mly_packetmap, sc->mly_packet,
+ ncmd * sizeof(union mly_command_packet),
+ mly_alloc_commands_map, sc, BUS_DMA_NOWAIT) != 0)
+ return (ENOMEM);
for (i = 0; i < ncmd; i++) {
mc = &sc->mly_command[i];
OpenPOWER on IntegriCloud