From owner-p4-projects@FreeBSD.ORG Wed Oct 15 21:14:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52F6316A4C0; Wed, 15 Oct 2003 21:14:21 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2E63416A4B3 for ; Wed, 15 Oct 2003 21:14:21 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B04A843FCB for ; Wed, 15 Oct 2003 21:14:20 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h9G4EKXJ045106 for ; Wed, 15 Oct 2003 21:14:20 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h9G4EKvG045103 for perforce@freebsd.org; Wed, 15 Oct 2003 21:14:20 -0700 (PDT) (envelope-from sam@freebsd.org) Date: Wed, 15 Oct 2003 21:14:20 -0700 (PDT) Message-Id: <200310160414.h9G4EKvG045103@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 39767 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 04:14:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=39767 Change 39767 by sam@sam_ebb on 2003/10/15 21:13:43 Check return value from bus_dmamap_load_mbuf more closely; when this is EFBIG the packet required too many segments and we need to force state to get the descriptor coalescing logic to be used. Reported on netbsd mailing list. Affected files ... .. //depot/projects/netperf/sys/dev/ath/if_ath.c#22 edit Differences ... ==== //depot/projects/netperf/sys/dev/ath/if_ath.c#22 (text+ko) ==== @@ -1765,7 +1765,10 @@ error = bus_dmamap_load_mbuf(sc->sc_dmat, bf->bf_dmamap, m0, ath_mbuf_load_cb, bf, BUS_DMA_NOWAIT); - if (error != 0) { + if (error == EFBIG) { + /* XXX packet requires too many descriptors */ + bf->bf_nseg = ATH_TXDESC+1; + } else if (error != 0) { sc->sc_stats.ast_tx_busdma++; m_freem(m0); return error;