It might be me not understanding this code, but is it correct that you appear to convert 10Mb numbers into 100Mb in several places ?
e.g.: > Index: if_txp.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_txp.c,v > retrieving revision 1.104 > diff -u -p -r1.104 if_txp.c > --- if_txp.c 5 Apr 2011 18:01:21 -0000 1.104 > +++ if_txp.c 23 Nov 2012 14:07:42 -0000 > @@ -225,7 +225,7 @@ txp_attachhook(void *vsc) > ifp->if_ioctl = txp_ioctl; > ifp->if_start = txp_start; > ifp->if_watchdog = txp_watchdog; > - ifp->if_baudrate = 10000000; > + ifp->if_baudrate = IF_Mbps(100); > IFQ_SET_MAXLEN(&ifp->if_snd, TX_ENTRIES); > IFQ_SET_READY(&ifp->if_snd); > ifp->if_capabilities = 0; 10,000,000 => IF_Mbps(100) (seems not OK ?) > Index: if_vge.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_vge.c,v > retrieving revision 1.51 > diff -u -p -r1.51 if_vge.c > --- if_vge.c 22 Jun 2011 16:44:27 -0000 1.51 > +++ if_vge.c 23 Nov 2012 14:07:42 -0000 > @@ -787,7 +787,7 @@ vge_attach(struct device *parent, struct > ifp->if_ioctl = vge_ioctl; > ifp->if_start = vge_start; > ifp->if_watchdog = vge_watchdog; > - ifp->if_baudrate = 1000000000; > + ifp->if_baudrate = IF_Gbps(1); > #ifdef VGE_JUMBO > ifp->if_hardmtu = VGE_JUMBO_MTU; > #endif 1,000,000,000 => IF_Gbps(1) (seems OK)
