From owner-svn-src-user@FreeBSD.ORG Fri Dec 5 21:17:19 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 653591065675; Fri, 5 Dec 2008 21:17:19 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5544C8FC31; Fri, 5 Dec 2008 21:17:19 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mB5LHJh5073368; Fri, 5 Dec 2008 21:17:19 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mB5LHJjE073367; Fri, 5 Dec 2008 21:17:19 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200812052117.mB5LHJjE073367@svn.freebsd.org> From: Kip Macy Date: Fri, 5 Dec 2008 21:17:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r185650 - user/kmacy/HEAD_fast_multi_xmit/sys/dev/e1000 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Dec 2008 21:17:19 -0000 Author: kmacy Date: Fri Dec 5 21:17:19 2008 New Revision: 185650 URL: http://svn.freebsd.org/changeset/base/185650 Log: - convert to drbr helper functions - free buf_ring on detach - pass mbuf to bpf in direct transmit case pointed out by: Gallatin Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/e1000/if_em.c Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/e1000/if_em.c ============================================================================== --- user/kmacy/HEAD_fast_multi_xmit/sys/dev/e1000/if_em.c Fri Dec 5 21:16:13 2008 (r185649) +++ user/kmacy/HEAD_fast_multi_xmit/sys/dev/e1000/if_em.c Fri Dec 5 21:17:19 2008 (r185650) @@ -889,6 +889,7 @@ em_detach(device_t dev) em_free_pci_resources(adapter); bus_generic_detach(dev); if_free(ifp); + drbr_free(adapter->br, M_DEVBUF); em_free_transmit_structures(adapter); em_free_receive_structures(adapter); @@ -995,23 +996,22 @@ em_transmit_locked(struct ifnet *ifp, st if (((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) || (!adapter->link_active)) { - if ((error = buf_ring_enqueue(adapter->br, m))) - m_freem(m); + error = drbr_enqueue(adapter->br, m); return (error); } if (buf_ring_empty(adapter->br) && (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) { - if (em_xmit(adapter, &m)) - if (m && (error = buf_ring_enqueue(adapter->br, m)) != 0) { - m_freem(m); + if (em_xmit(adapter, &m)) { + if (m && (error = drbr_enqueue(adapter->br, m)) != 0) { return (error); } - - } else if ((error = buf_ring_enqueue(adapter->br, m)) != 0) { - m_freem(m); + } else{ + /* Send a copy of the frame to the BPF listener */ + ETHER_BPF_MTAP(ifp, m); + } + } else if ((error = drbr_enqueue(adapter->br, m)) != 0) return (error); - } if (!buf_ring_empty(adapter->br)) em_start_locked(ifp); @@ -1122,10 +1122,8 @@ em_transmit(struct ifnet *ifp, struct mb if (ifp->if_drv_flags & IFF_DRV_RUNNING) error = em_transmit_locked(ifp, m); EM_TX_UNLOCK(adapter); - } else { - if ((error = buf_ring_enqueue(adapter->br, m))) - m_freem(m); - } + } else + error = drbr_enqueue(adapter->br, m); return (error); }