Am Sonntag, 25. November 2012 schrieb Brad Smith : > On Fri, Nov 23, 2012 at 11:57:50AM -0200, Gleydson Soares wrote: > > set ifp->if_baudrate with IF_Gbps() / IF_Mbps(). > > > > OK ? > > Although it has already been commited its the wrong direction to go in. > These should be removed as the MII framework deals with this properly, > plus you missed a bunch of drivers. > > Did you read my last reply about it? This is wrong. You cannot just remove if_baudrate because it is used in some places in the kernel (lacp, bridge) and userland as ifi_baudrate (pfctl's altq auto-bandwidth, snmpd). Simply removing it will break existing setups. We had the same problem and reason for if_linkstate: you cannot simply switch it to the MII framework as it is neither easy nor safe to read it from interrupt context. if_baudrate has to be fixed and unified, but it is not as easy as you think. I think it should reflect the current link bandwidth, just like if_linkstate does for the link state.
Reyk > > Index: arch/octeon/dev/cn30xxgmx.c > =================================================================== > RCS file: /home/cvs/src/sys/arch/octeon/dev/cn30xxgmx.c,v > retrieving revision 1.3 > diff -u -p -r1.3 cn30xxgmx.c > --- arch/octeon/dev/cn30xxgmx.c 3 Jul 2011 20:31:39 -0000 1.3 > baudrate = IF_Mbps(100); > break; > case RXN_RX_INBND_SPEED_125: > - baudrate = IF_Mbps(1000); > + baudrate = IF_Gbps(1); > break; > default: > baudrate = 0/* XXX */; > Index: arch/socppc/dev/if_tsec.c > =================================================================== > RCS file: /home/cvs/src/sys/arch/socppc/dev/if_tsec.c,v > retrieving revision 1.28 > diff -u -p -r1.28 if_tsec.c > --- arch/socppc/dev/if_tsec.c 21 Dec 2009 19:58:57 -0000 1.28 > +++ arch/socppc/dev/if_tsec.c 23 Nov 2012 22:49:19 -0000 > @@ -413,7 +413,6 @@ tsec_attach(struct device *parent, struc > ifp->if_ioctl = tsec_ioctl; > ifp->if_start = tsec_start; > ifp->if_watchdog = tsec_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, TSEC_NTXDESC - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/ic/dc.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/ic/dc.c,v > retrieving revision 1.124 > diff -u -p -r1.124 dc.c > --- dev/ic/dc.c 7 Jul 2011 20:42:56 -0000 1.124 > +++ dev/ic/dc.c 23 Nov 2012 22:33:36 -0000 > @@ -1731,7 +1731,6 @@ hasmac: > ifp->if_ioctl = dc_ioctl; > ifp->if_start = dc_start; > ifp->if_watchdog = dc_watchdog; > - ifp->if_baudrate = 10000000; > IFQ_SET_MAXLEN(&ifp->if_snd, DC_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/ic/mtd8xx.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/ic/mtd8xx.c,v > retrieving revision 1.18 > diff -u -p -r1.18 mtd8xx.c > --- dev/ic/mtd8xx.c 21 Jun 2011 16:52:45 -0000 1.18 > +++ dev/ic/mtd8xx.c 23 Nov 2012 22:33:45 -0000 > @@ -163,7 +163,6 @@ mtd_attach(struct mtd_softc *sc) > ifp->if_ioctl = mtd_ioctl; > ifp->if_start = mtd_start; > ifp->if_watchdog = mtd_watchdog; > - ifp->if_baudrate = 10000000; > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > > Index: dev/ic/rtl81x9.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/ic/rtl81x9.c,v > retrieving revision 1.75 > diff -u -p -r1.75 rtl81x9.c > --- dev/ic/rtl81x9.c 21 Jun 2011 16:52:45 -0000 1.75 > +++ dev/ic/rtl81x9.c 23 Nov 2012 22:33:25 -0000 > @@ -1213,7 +1213,6 @@ rl_attach(struct rl_softc *sc) > ifp->if_ioctl = rl_ioctl; > ifp->if_start = rl_start; > ifp->if_watchdog = rl_watchdog; > - ifp->if_baudrate = 10000000; > IFQ_SET_READY(&ifp->if_snd); > > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/pci/if_age.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_age.c,v > retrieving revision 1.19 > diff -u -p -r1.19 if_age.c > --- dev/pci/if_age.c 19 Oct 2011 05:23:44 -0000 1.19 > +++ dev/pci/if_age.c 23 Nov 2012 22:10:10 -0000 > @@ -231,7 +231,6 @@ age_attach(struct device *parent, struct > ifp->if_ioctl = age_ioctl; > ifp->if_start = age_start; > ifp->if_watchdog = age_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, AGE_TX_RING_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->age_eaddr, sc->sc_arpcom.ac_enaddr, ETHER_ADDR_LEN); > Index: dev/pci/if_alc.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_alc.c,v > retrieving revision 1.21 > diff -u -p -r1.21 if_alc.c > --- dev/pci/if_alc.c 19 Oct 2011 05:23:44 -0000 1.21 > +++ dev/pci/if_alc.c 23 Nov 2012 22:10:16 -0000 > @@ -847,7 +847,6 @@ alc_attach(struct device *parent, struct > ifp->if_ioctl = alc_ioctl; > ifp->if_start = alc_start; > ifp->if_watchdog = alc_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, ALC_TX_RING_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->alc_eaddr, sc->sc_arpcom.ac_enaddr, ETHER_ADDR_LEN); > Index: dev/pci/if_ale.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_ale.c,v > retrieving revision 1.24 > diff -u -p -r1.24 if_ale.c > --- dev/pci/if_ale.c 26 Sep 2012 19:24:06 -0000 1.24 > +++ dev/pci/if_ale.c 23 Nov 2012 22:10:23 -0000 > @@ -509,7 +509,6 @@ ale_attach(struct device *parent, struct > ifp->if_ioctl = ale_ioctl; > ifp->if_start = ale_start; > ifp->if_watchdog = ale_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, ALE_TX_RING_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->ale_eaddr, sc->sc_arpcom.ac_enaddr, ETHER_ADDR_LEN); > Index: dev/pci/if_em.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_em.c,v > retrieving revision 1.267 > diff -u -p -r1.267 if_em.c > --- dev/pci/if_em.c 16 Aug 2012 09:31:53 -0000 1.267 > +++ dev/pci/if_em.c 23 Nov 2012 22:23:28 -0000 > @@ -1485,7 +1485,7 @@ em_update_link_status(struct em_softc *s > } > sc->link_active = 1; > sc->smartspeed = 0; > - ifp->if_baudrate = sc->link_speed * 1000000; > + ifp->if_baudrate = IF_Mbps(sc->link_speed); > } > if (!LINK_STATE_IS_UP(ifp->if_link_state)) { > if (sc->link_duplex == FULL_DUPLEX) > Index: dev/pci/if_ix.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_ix.c,v > retrieving revision 1.75 > diff -u -p -r1.75 if_ix.c > --- dev/pci/if_ix.c 23 Nov 2012 04:34:11 -0000 1.75 > +++ dev/pci/if_ix.c 25 Nov 2012 03:10:56 -0000 > @@ -1598,7 +1598,6 @@ ixgbe_setup_interface(struct ix_softc *s > INIT_DEBUGOUT("ixgbe_setup_interface: begin"); > > strlcpy(ifp->if_xname, sc->dev.dv_xname, IFNAMSIZ); > - ifp->if_baudrate = IF_Gbps(10); > ifp->if_softc = sc; > ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; > ifp->if_ioctl = ixgbe_ioctl; > Index: dev/pci/if_jme.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_jme.c,v > retrieving revision 1.28 > diff -u -p -r1.28 if_jme.c > --- dev/pci/if_jme.c 22 Oct 2012 09:19:17 -0000 1.28 > +++ dev/pci/if_jme.c 23 Nov 2012 22:16:16 -0000 > @@ -609,7 +609,6 @@ jme_attach(struct device *parent, struct > ifp->if_ioctl = jme_ioctl; > ifp->if_start = jme_start; > ifp->if_watchdog = jme_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, JME_TX_RING_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > strlcpy(ifp->if_xname, sc->sc_dev.dv_xname, IFNAMSIZ); > Index: dev/pci/if_lge.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_lge.c,v > retrieving revision 1.56 > diff -u -p -r1.56 if_lge.c > --- dev/pci/if_lge.c 18 Oct 2012 21:44:21 -0000 1.56 > +++ dev/pci/if_lge.c 23 Nov 2012 22:29:14 -0000 > @@ -518,7 +518,6 @@ lge_attach(struct device *parent, struct > ifp->if_ioctl = lge_ioctl; > ifp->if_start = lge_start; > ifp->if_watchdog = lge_watchdog; > - ifp->if_baudrate = 1000000000; > ifp->if_hardmtu = LGE_JUMBO_MTU; > IFQ_SET_MAXLEN(&ifp->if_snd, LGE_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > Index: dev/pci/if_msk.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_msk.c,v > retrieving revision 1.95 > diff -u -p -r1.95 if_msk.c > --- dev/pci/if_msk.c 18 Oct 2012 21:44:21 -0000 1.95 > +++ dev/pci/if_msk.c 23 Nov 2012 22:16:01 -0000 > @@ -970,7 +970,6 @@ msk_attach(struct device *parent, struct > ifp->if_ioctl = msk_ioctl; > ifp->if_start = msk_start; > ifp->if_watchdog = msk_watchdog; > - ifp->if_baudrate = 1000000000; > if (sc->sk_type != SK_YUKON_FE && > sc->sk_type != SK_YUKON_FE_P) > ifp->if_hardmtu = SK_JUMBO_MTU; > Index: dev/pci/if_myx.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_myx.c,v > retrieving revision 1.30 > diff -u -p -r1.30 if_myx.c > --- dev/pci/if_myx.c 28 Nov 2011 10:25:22 -0000 1.30 > +++ dev/pci/if_myx.c 23 Nov 2012 22:31:36 -0000 > @@ -466,7 +466,6 @@ myx_attachhook(void *arg) > ifp->if_capabilities |= IFCAP_CSUM_IPv4 | IFCAP_CSUM_TCPv4 | > IFCAP_CSUM_UDPv4; > #endif > - ifp->if_baudrate = 0; > > ifmedia_init(&sc->sc_media, 0, myx_media_change, myx_media_status); > ifmedia_add(&sc->sc_media, IFM_ETHER | IFM_AUTO, 0, NULL); > Index: dev/pci/if_nfe.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_nfe.c,v > retrieving revision 1.99 > diff -u -p -r1.99 if_nfe.c > --- dev/pci/if_nfe.c 31 Aug 2012 12:41:17 -0000 1.99 > +++ dev/pci/if_nfe.c 23 Nov 2012 22:29:32 -0000 > @@ -344,7 +344,6 @@ nfe_attach(struct device *parent, struct > ifp->if_ioctl = nfe_ioctl; > ifp->if_start = nfe_start; > ifp->if_watchdog = nfe_watchdog; > - ifp->if_baudrate = IF_Gbps(1); > IFQ_SET_MAXLEN(&ifp->if_snd, NFE_IFQ_MAXLEN); > IFQ_SET_READY(&ifp->if_snd); > strlcpy(ifp->if_xname, sc->sc_dev.dv_xname, IFNAMSIZ); > Index: dev/pci/if_nge.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_nge.c,v > retrieving revision 1.72 > diff -u -p -r1.72 if_nge.c > --- dev/pci/if_nge.c 18 Oct 2012 21:44:21 -0000 1.72 > +++ dev/pci/if_nge.c 23 Nov 2012 22:29:23 -0000 > @@ -848,7 +848,6 @@ nge_attach(parent, self, aux) > ifp->if_ioctl = nge_ioctl; > ifp->if_start = nge_start; > ifp->if_watchdog = nge_watchdog; > - ifp->if_baudrate = 1000000000; > ifp->if_hardmtu = NGE_JUMBO_MTU; > IFQ_SET_MAXLEN(&ifp->if_snd, NGE_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > Index: dev/pci/if_sis.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_sis.c,v > retrieving revision 1.106 > diff -u -p -r1.106 if_sis.c > --- dev/pci/if_sis.c 18 Oct 2012 21:44:21 -0000 1.106 > +++ dev/pci/if_sis.c 23 Nov 2012 22:29:41 -0000 > @@ -1090,7 +1090,6 @@ sis_attach(struct device *parent, struct > ifp->if_ioctl = sis_ioctl; > ifp->if_start = sis_start; > ifp->if_watchdog = sis_watchdog; > - ifp->if_baudrate = 10000000; > IFQ_SET_MAXLEN(&ifp->if_snd, SIS_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/pci/if_sk.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_sk.c,v > retrieving revision 1.162 > diff -u -p -r1.162 if_sk.c > --- dev/pci/if_sk.c 18 Oct 2012 21:44:21 -0000 1.162 > +++ dev/pci/if_sk.c 23 Nov 2012 22:17:10 -0000 > @@ -1167,7 +1167,6 @@ sk_attach(struct device *parent, struct > ifp->if_ioctl = sk_ioctl; > ifp->if_start = sk_start; > ifp->if_watchdog = sk_watchdog; > - ifp->if_baudrate = 1000000000; > ifp->if_hardmtu = SK_JUMBO_MTU; > IFQ_SET_MAXLEN(&ifp->if_snd, SK_TX_RING_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > Index: dev/pci/if_ste.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_ste.c,v > retrieving revision 1.49 > diff -u -p -r1.49 if_ste.c > --- dev/pci/if_ste.c 23 Nov 2012 18:40:29 -0000 1.49 > +++ dev/pci/if_ste.c 23 Nov 2012 22:32:14 -0000 > @@ -931,7 +931,6 @@ ste_attach(struct device *parent, struct > ifp->if_ioctl = ste_ioctl; > ifp->if_start = ste_start; > ifp->if_watchdog = ste_watchdog; > - ifp->if_baudrate = IF_Mbps(10); > IFQ_SET_MAXLEN(&ifp->if_snd, STE_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/pci/if_tl.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_tl.c,v > retrieving revision 1.52 > diff -u -p -r1.52 if_tl.c > --- dev/pci/if_tl.c 23 Nov 2012 18:40:30 -0000 1.52 > +++ dev/pci/if_tl.c 23 Nov 2012 22:32:37 -0000 > @@ -2125,7 +2125,6 @@ tl_attach(parent, self, aux) > ifp->if_ioctl = tl_ioctl; > ifp->if_start = tl_start; > ifp->if_watchdog = tl_watchdog; > - ifp->if_baudrate = IF_Mbps(10); > IFQ_SET_MAXLEN(&ifp->if_snd, TL_TX_LIST_CNT - 1); > IFQ_SET_READY(&ifp->if_snd); > bcopy(sc->sc_dev.dv_xname, ifp->if_xname, IFNAMSIZ); > Index: dev/pci/if_vge.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_vge.c,v > retrieving revision 1.52 > diff -u -p -r1.52 if_vge.c > --- dev/pci/if_vge.c 23 Nov 2012 18:40:30 -0000 1.52 > +++ dev/pci/if_vge.c 23 Nov 2012 22:17:02 -0000 > @@ -787,7 +787,6 @@ vge_attach(struct device *parent, struct > ifp->if_ioctl = vg- Index: dev/pci