Date: Wed, 13 Feb 2008 10:41:19 GMT From: Sepherosa Ziehau <sephe@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 135299 for review Message-ID: <200802131041.m1DAfJ2o055129@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135299 Change 135299 by sephe@sephe_zealot:sam_wifi on 2008/02/13 10:41:08 Use NOWAIT under most of the cases, it should be safe in FreeBSD though. Affected files ... .. //depot/projects/wifi/sys/dev/bwi/if_bwi.c#13 edit Differences ... ==== //depot/projects/wifi/sys/dev/bwi/if_bwi.c#13 (text+ko) ==== @@ -1963,7 +1963,7 @@ error = bus_dmamap_load(dtag, rd->rdata_dmap, rd->rdata_desc, size, bwi_dma_ring_addr, &rd->rdata_paddr, - BUS_DMA_WAITOK); + BUS_DMA_NOWAIT); if (error) { device_printf(sc->sc_dev, "can't load DMA mem\n"); bus_dmamem_free(dtag, rd->rdata_desc, rd->rdata_dmap); @@ -1983,7 +1983,11 @@ bus_size_t dma_size; int error; - st = malloc(sizeof(*st), M_DEVBUF, M_WAITOK | M_ZERO); + st = malloc(sizeof(*st), M_DEVBUF, M_NOWAIT | M_ZERO); + if (st == NULL) { + device_printf(sc->sc_dev, "can't allocate txstats data\n"); + return ENOMEM; + } sc->sc_txstats = st; /* @@ -2023,7 +2027,7 @@ error = bus_dmamap_load(st->stats_ring_dtag, st->stats_ring_dmap, st->stats_ring, dma_size, bwi_dma_ring_addr, &st->stats_ring_paddr, - BUS_DMA_WAITOK); + BUS_DMA_NOWAIT); if (error) { device_printf(sc->sc_dev, "can't load txstats ring DMA mem\n"); bus_dmamem_free(st->stats_ring_dtag, st->stats_ring, @@ -2068,7 +2072,7 @@ error = bus_dmamap_load(st->stats_dtag, st->stats_dmap, st->stats, dma_size, bwi_dma_ring_addr, &st->stats_paddr, - BUS_DMA_WAITOK); + BUS_DMA_NOWAIT); if (error) { device_printf(sc->sc_dev, "can't load txstats DMA mem\n"); bus_dmamem_free(st->stats_dtag, st->stats, st->stats_dmap); @@ -2440,7 +2444,7 @@ KASSERT(buf_idx < BWI_RX_NDESC, ("buf_idx %d", buf_idx)); - m = m_getcl(init ? M_WAIT : M_DONTWAIT, MT_DATA, M_PKTHDR); + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); if (m == NULL) { error = ENOBUFS; @@ -2460,8 +2464,7 @@ * Try to load RX buf into temporary DMA map */ error = bus_dmamap_load_mbuf(sc->sc_buf_dtag, rbd->rbd_tmp_dmap, m, - bwi_dma_buf_addr, &paddr, - init ? BUS_DMA_WAITOK : BUS_DMA_NOWAIT); + bwi_dma_buf_addr, &paddr, BUS_DMA_NOWAIT); if (error) { m_freem(m);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802131041.m1DAfJ2o055129>