if_lge.c (246e7a2b6494cd991b08ac669ed761ecea0cc98c) | if_lge.c (c8dfaf382fa6df9dc6fd1e1c3356e0c8bf607e6a) |
---|---|
1/*- 2 * Copyright (c) 2001 Wind River Systems 3 * Copyright (c) 1997, 1998, 1999, 2000, 2001 4 * Bill Paul <william.paul@windriver.com>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 902 unchanged lines hidden (view full) --- 911 912 /* 913 * If an error occurs, update stats, clear the 914 * status word and leave the mbuf cluster in place: 915 * it should simply get re-used next time this descriptor 916 * comes up in the ring. 917 */ 918 if (rxctl & LGE_RXCTL_ERRMASK) { | 1/*- 2 * Copyright (c) 2001 Wind River Systems 3 * Copyright (c) 1997, 1998, 1999, 2000, 2001 4 * Bill Paul <william.paul@windriver.com>. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 902 unchanged lines hidden (view full) --- 911 912 /* 913 * If an error occurs, update stats, clear the 914 * status word and leave the mbuf cluster in place: 915 * it should simply get re-used next time this descriptor 916 * comes up in the ring. 917 */ 918 if (rxctl & LGE_RXCTL_ERRMASK) { |
919 ifp->if_ierrors++; | 919 if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); |
920 lge_newbuf(sc, &LGE_RXTAIL(sc), m); 921 continue; 922 } 923 924 if (lge_newbuf(sc, &LGE_RXTAIL(sc), NULL) == ENOBUFS) { 925 m0 = m_devget(mtod(m, char *), total_len, ETHER_ALIGN, 926 ifp, NULL); 927 lge_newbuf(sc, &LGE_RXTAIL(sc), m); 928 if (m0 == NULL) { 929 device_printf(sc->lge_dev, "no receive buffers " 930 "available -- packet dropped!\n"); | 920 lge_newbuf(sc, &LGE_RXTAIL(sc), m); 921 continue; 922 } 923 924 if (lge_newbuf(sc, &LGE_RXTAIL(sc), NULL) == ENOBUFS) { 925 m0 = m_devget(mtod(m, char *), total_len, ETHER_ALIGN, 926 ifp, NULL); 927 lge_newbuf(sc, &LGE_RXTAIL(sc), m); 928 if (m0 == NULL) { 929 device_printf(sc->lge_dev, "no receive buffers " 930 "available -- packet dropped!\n"); |
931 ifp->if_ierrors++; | 931 if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); |
932 continue; 933 } 934 m = m0; 935 } else { 936 m->m_pkthdr.rcvif = ifp; 937 m->m_pkthdr.len = m->m_len = total_len; 938 } 939 | 932 continue; 933 } 934 m = m0; 935 } else { 936 m->m_pkthdr.rcvif = ifp; 937 m->m_pkthdr.len = m->m_len = total_len; 938 } 939 |
940 ifp->if_ipackets++; | 940 if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); |
941 942 /* Do IP checksum checking. */ 943 if (rxsts & LGE_RXSTS_ISIP) 944 m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED; 945 if (!(rxsts & LGE_RXSTS_IPCSUMERR)) 946 m->m_pkthdr.csum_flags |= CSUM_IP_VALID; 947 if ((rxsts & LGE_RXSTS_ISTCP && 948 !(rxsts & LGE_RXSTS_TCPCSUMERR)) || --- 49 unchanged lines hidden (view full) --- 998 * frames that have been transmitted. 999 */ 1000 idx = sc->lge_cdata.lge_tx_cons; 1001 txdone = CSR_READ_1(sc, LGE_TXDMADONE_8BIT); 1002 1003 while (idx != sc->lge_cdata.lge_tx_prod && txdone) { 1004 cur_tx = &sc->lge_ldata->lge_tx_list[idx]; 1005 | 941 942 /* Do IP checksum checking. */ 943 if (rxsts & LGE_RXSTS_ISIP) 944 m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED; 945 if (!(rxsts & LGE_RXSTS_IPCSUMERR)) 946 m->m_pkthdr.csum_flags |= CSUM_IP_VALID; 947 if ((rxsts & LGE_RXSTS_ISTCP && 948 !(rxsts & LGE_RXSTS_TCPCSUMERR)) || --- 49 unchanged lines hidden (view full) --- 998 * frames that have been transmitted. 999 */ 1000 idx = sc->lge_cdata.lge_tx_cons; 1001 txdone = CSR_READ_1(sc, LGE_TXDMADONE_8BIT); 1002 1003 while (idx != sc->lge_cdata.lge_tx_prod && txdone) { 1004 cur_tx = &sc->lge_ldata->lge_tx_list[idx]; 1005 |
1006 ifp->if_opackets++; | 1006 if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); |
1007 if (cur_tx->lge_mbuf != NULL) { 1008 m_freem(cur_tx->lge_mbuf); 1009 cur_tx->lge_mbuf = NULL; 1010 } 1011 cur_tx->lge_ctl = 0; 1012 1013 txdone--; 1014 LGE_INC(idx, LGE_TX_LIST_CNT); --- 16 unchanged lines hidden (view full) --- 1031 struct mii_data *mii; 1032 struct ifnet *ifp; 1033 1034 sc = xsc; 1035 ifp = sc->lge_ifp; 1036 LGE_LOCK_ASSERT(sc); 1037 1038 CSR_WRITE_4(sc, LGE_STATSIDX, LGE_STATS_SINGLE_COLL_PKTS); | 1007 if (cur_tx->lge_mbuf != NULL) { 1008 m_freem(cur_tx->lge_mbuf); 1009 cur_tx->lge_mbuf = NULL; 1010 } 1011 cur_tx->lge_ctl = 0; 1012 1013 txdone--; 1014 LGE_INC(idx, LGE_TX_LIST_CNT); --- 16 unchanged lines hidden (view full) --- 1031 struct mii_data *mii; 1032 struct ifnet *ifp; 1033 1034 sc = xsc; 1035 ifp = sc->lge_ifp; 1036 LGE_LOCK_ASSERT(sc); 1037 1038 CSR_WRITE_4(sc, LGE_STATSIDX, LGE_STATS_SINGLE_COLL_PKTS); |
1039 ifp->if_collisions += CSR_READ_4(sc, LGE_STATSVAL); | 1039 if_inc_counter(ifp, IFCOUNTER_COLLISIONS, CSR_READ_4(sc, LGE_STATSVAL)); |
1040 CSR_WRITE_4(sc, LGE_STATSIDX, LGE_STATS_MULTI_COLL_PKTS); | 1040 CSR_WRITE_4(sc, LGE_STATSIDX, LGE_STATS_MULTI_COLL_PKTS); |
1041 ifp->if_collisions += CSR_READ_4(sc, LGE_STATSVAL); | 1041 if_inc_counter(ifp, IFCOUNTER_COLLISIONS, CSR_READ_4(sc, LGE_STATSVAL)); |
1042 1043 if (!sc->lge_link) { 1044 mii = device_get_softc(sc->lge_miibus); 1045 mii_tick(mii); 1046 if (mii->mii_media_status & IFM_ACTIVE && 1047 IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) { 1048 sc->lge_link++; 1049 if (bootverbose && --- 449 unchanged lines hidden (view full) --- 1499lge_watchdog(sc) 1500 struct lge_softc *sc; 1501{ 1502 struct ifnet *ifp; 1503 1504 LGE_LOCK_ASSERT(sc); 1505 ifp = sc->lge_ifp; 1506 | 1042 1043 if (!sc->lge_link) { 1044 mii = device_get_softc(sc->lge_miibus); 1045 mii_tick(mii); 1046 if (mii->mii_media_status & IFM_ACTIVE && 1047 IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) { 1048 sc->lge_link++; 1049 if (bootverbose && --- 449 unchanged lines hidden (view full) --- 1499lge_watchdog(sc) 1500 struct lge_softc *sc; 1501{ 1502 struct ifnet *ifp; 1503 1504 LGE_LOCK_ASSERT(sc); 1505 ifp = sc->lge_ifp; 1506 |
1507 ifp->if_oerrors++; | 1507 if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); |
1508 if_printf(ifp, "watchdog timeout\n"); 1509 1510 lge_stop(sc); 1511 lge_reset(sc); 1512 ifp->if_drv_flags &= ~IFF_DRV_RUNNING; 1513 lge_init_locked(sc); 1514 1515 if (ifp->if_snd.ifq_head != NULL) --- 73 unchanged lines hidden --- | 1508 if_printf(ifp, "watchdog timeout\n"); 1509 1510 lge_stop(sc); 1511 lge_reset(sc); 1512 ifp->if_drv_flags &= ~IFF_DRV_RUNNING; 1513 lge_init_locked(sc); 1514 1515 if (ifp->if_snd.ifq_head != NULL) --- 73 unchanged lines hidden --- |