From owner-p4-projects@FreeBSD.ORG Wed Feb 13 10:41:20 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 07EB516A46B; Wed, 13 Feb 2008 10:41:20 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0BC516A417 for ; Wed, 13 Feb 2008 10:41:19 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B4A8A13C45E for ; Wed, 13 Feb 2008 10:41:19 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1DAfJ5j055132 for ; Wed, 13 Feb 2008 10:41:19 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1DAfJ2o055129 for perforce@freebsd.org; Wed, 13 Feb 2008 10:41:19 GMT (envelope-from sephe@FreeBSD.org) Date: Wed, 13 Feb 2008 10:41:19 GMT Message-Id: <200802131041.m1DAfJ2o055129@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 135299 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Feb 2008 10:41:20 -0000 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);