Module Name: src Committed By: matt Date: Fri Oct 5 03:57:21 UTC 2012
Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Fix setting of ethernet address. Don't set HASFCS To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.4 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.5 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.4 Fri Oct 5 03:24:51 2012 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Oct 5 03:57:21 2012 @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.4 2012/10/05 03:24:51 matt Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.5 2012/10/05 03:57:21 matt Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -249,12 +249,12 @@ bcmeth_ccb_attach(device_t parent, devic aprint_error(": mac-address property is missing\n"); return; } - sc->sc_enaddr[0] = (mac1 >> 0) & 0xff; - sc->sc_enaddr[1] = (mac1 >> 8) & 0xff; - sc->sc_enaddr[2] = (mac0 >> 0) & 0xff; - sc->sc_enaddr[3] = (mac0 >> 8) & 0xff; - sc->sc_enaddr[4] = (mac0 >> 16) & 0xff; - sc->sc_enaddr[5] = (mac0 >> 24) & 0xff; + sc->sc_enaddr[0] = (mac0 >> 0) & 0xff; + sc->sc_enaddr[1] = (mac0 >> 8) & 0xff; + sc->sc_enaddr[2] = (mac0 >> 16) & 0xff; + sc->sc_enaddr[3] = (mac0 >> 24) & 0xff; + sc->sc_enaddr[4] = (mac1 >> 0) & 0xff; + sc->sc_enaddr[5] = (mac1 >> 8) & 0xff; } else { KASSERT(prop_object_type(eaprop) == PROP_TYPE_DATA); KASSERT(prop_data_size(eaprop) == ETHER_ADDR_LEN); @@ -373,12 +373,12 @@ bcmeth_mediastatus(struct ifnet *ifp, st static uint64_t bcmeth_macaddr_create(const uint8_t *enaddr) { - return (enaddr[2] << 0) // UNIMAC_MAC_0 - | (enaddr[3] << 8) // UNIMAC_MAC_0 - | (enaddr[4] << 16) // UNIMAC_MAC_0 - | (enaddr[5] << 24) // UNIMAC_MAC_0 - | ((uint64_t)enaddr[0] << 32) // UNIMAC_MAC_1 - | ((uint64_t)enaddr[1] << 40); // UNIMAC_MAC_1 + return (enaddr[3] << 0) // UNIMAC_MAC_0 + | (enaddr[2] << 8) // UNIMAC_MAC_0 + | (enaddr[1] << 16) // UNIMAC_MAC_0 + | (enaddr[0] << 24) // UNIMAC_MAC_0 + | ((uint64_t)enaddr[5] << 32) // UNIMAC_MAC_1 + | ((uint64_t)enaddr[4] << 40); // UNIMAC_MAC_1 } static int @@ -903,7 +903,6 @@ bcmeth_rx_input( } if (sc->sc_cmdcfg & PROMISC_EN) m->m_flags |= M_PROMISC; - m->m_flags |= M_HASFCS; m->m_pkthdr.rcvif = ifp; ifp->if_ipackets++; @@ -1359,7 +1358,7 @@ bcmeth_txq_consume( txq->txq_free += txfree; txq->txq_lastintr -= min(txq->txq_lastintr, txfree); #if 0 - printf("%s: empty: freed %zu descriptors going form %zu to %zu\n", + printf("%s: empty: freed %zu descriptors going from %zu to %zu\n", __func__, txfree, txq->txq_free - txfree, txq->txq_free); #endif KASSERT(txq->txq_lastintr == 0);