svn commit: r189203 - in user/kmacy/releng_7_fast_net/sys: net
netgraph
Kip Macy
kmacy at FreeBSD.org
Sat Feb 28 20:49:43 PST 2009
Author: kmacy
Date: Sun Mar 1 04:49:42 2009
New Revision: 189203
URL: http://svn.freebsd.org/changeset/base/189203
Log:
multiq step 4:
enable if_transmit: adds if_transmit and if_qflush to struct ifnet to give
high performance drivers the option of managing their own queues
Modified:
user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c
user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c
user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c
user/kmacy/releng_7_fast_net/sys/net/if_lagg.c
user/kmacy/releng_7_fast_net/sys/net/if_tun.c
user/kmacy/releng_7_fast_net/sys/net/if_vlan.c
user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c
Modified: user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_ethersubr.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -383,7 +383,6 @@ bad: if (m != NULL)
int
ether_output_frame(struct ifnet *ifp, struct mbuf *m)
{
- int error;
#if defined(INET) || defined(INET6)
struct ip_fw *rule = ip_dn_claim_rule(m);
@@ -402,8 +401,7 @@ ether_output_frame(struct ifnet *ifp, st
* Queue message on interface, update output statistics if
* successful, and start output if interface not yet active.
*/
- IFQ_HANDOFF(ifp, m, error);
- return (error);
+ return ((ifp->if_transmit)(ifp, m));
}
#if defined(INET) || defined(INET6)
Modified: user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_fddisubr.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -336,7 +336,7 @@ fddi_output(ifp, m, dst, rt0)
}
}
- IFQ_HANDOFF(ifp, m, error);
+ error = (ifp->if_transmit)(ifp, m);
if (error)
ifp->if_oerrors++;
Modified: user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_fwsubr.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -249,7 +249,7 @@ firewire_output(struct ifnet *ifp, struc
*/
enc->ul[0] = htonl(enc->ul[0]);
- IFQ_HANDOFF(ifp, m, error);
+ error = (ifp->if_transmit)(ifp, m);
return (error);
} else {
/*
@@ -309,7 +309,7 @@ firewire_output(struct ifnet *ifp, struc
enc->ul[0] = htonl(enc->ul[0]);
enc->ul[1] = htonl(enc->ul[1]);
- IFQ_HANDOFF(ifp, m, error);
+ error = (ifp->if_transmit)(ifp, m);
if (error) {
if (mtail)
m_freem(mtail);
Modified: user/kmacy/releng_7_fast_net/sys/net/if_lagg.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_lagg.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_lagg.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -1370,12 +1370,8 @@ out:
int
lagg_enqueue(struct ifnet *ifp, struct mbuf *m)
{
- int error = 0;
- IFQ_HANDOFF(ifp, m, error);
- if (error)
- ifp->if_oerrors++;
- return (error);
+ return (ifp->if_transmit)(ifp, m);
}
/*
Modified: user/kmacy/releng_7_fast_net/sys/net/if_tun.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_tun.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_tun.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -648,7 +648,7 @@ tunoutput(
}
}
- IFQ_HANDOFF(ifp, m0, error);
+ error = (ifp->if_transmit)(ifp, m0);
if (error) {
ifp->if_collisions++;
return (ENOBUFS);
Modified: user/kmacy/releng_7_fast_net/sys/net/if_vlan.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/net/if_vlan.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/net/if_vlan.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -864,7 +864,7 @@ vlan_start(struct ifnet *ifp)
* Send it, precisely as ether_output() would have.
* We are already running at splimp.
*/
- IFQ_HANDOFF(p, m, error);
+ error = (p->if_transmit)(p, m);
if (!error)
ifp->if_opackets++;
else
Modified: user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c
==============================================================================
--- user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c Sun Mar 1 04:45:37 2009 (r189202)
+++ user/kmacy/releng_7_fast_net/sys/netgraph/ng_iface.c Sun Mar 1 04:49:42 2009 (r189203)
@@ -400,7 +400,7 @@ ng_iface_output(struct ifnet *ifp, struc
return (ENOBUFS);
}
*(sa_family_t *)m->m_data = dst->sa_family;
- IFQ_HANDOFF(ifp, m, error);
+ error = (ifp->if_transmit)(ifp, m);
} else
error = ng_iface_send(ifp, m, dst->sa_family);
More information about the svn-src-user
mailing list