Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/dev/ic/i82596.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/dev/ic/i82596.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.31 retrieving revision 1.31.6.3 diff -u -p -r1.31 -r1.31.6.3 --- src/sys/dev/ic/i82596.c 2014/02/24 07:23:43 1.31 +++ src/sys/dev/ic/i82596.c 2016/07/09 20:25:02 1.31.6.3 @@ -1,4 +1,4 @@ -/* $NetBSD: i82596.c,v 1.31 2014/02/24 07:23:43 skrll Exp $ */ +/* $NetBSD: i82596.c,v 1.31.6.3 2016/07/09 20:25:02 skrll Exp $ */ /* * Copyright (c) 2003 Jochen Kunz. @@ -43,7 +43,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i82596.c,v 1.31 2014/02/24 07:23:43 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i82596.c,v 1.31.6.3 2016/07/09 20:25:02 skrll Exp $"); /* autoconfig and device stuff */ #include @@ -256,7 +256,7 @@ iee_intr(void *intarg) BUS_DMASYNC_POSTREAD); rx_mbuf->m_pkthdr.len = rx_mbuf->m_len = count & IEE_RBD_COUNT; - rx_mbuf->m_pkthdr.rcvif = ifp; + m_set_rcvif(rx_mbuf, ifp); MGETHDR(new_mbuf, M_DONTWAIT, MT_DATA); if (new_mbuf == NULL) { printf("%s: iee_intr: can't allocate mbuf\n", @@ -281,7 +281,7 @@ iee_intr(void *intarg) bus_dmamap_sync(sc->sc_dmat, rx_map, 0, rx_map->dm_mapsize, BUS_DMASYNC_PREREAD); bpf_mtap(ifp, rx_mbuf); - (*ifp->if_input)(ifp, rx_mbuf); + if_percpuq_enqueue(ifp->if_percpuq, rx_mbuf); ifp->if_ipackets++; sc->sc_rx_mbuf[sc->sc_rx_done] = new_mbuf; rbd->rbd_count = 0; @@ -513,10 +513,10 @@ iee_cb_setup(struct iee_softc *sc, uint3 break; } memcpy(__UNVOLATILE(&cb->cb_mcast.mc_addrs[ - cb->cb_mcast.mc_size * ETHER_ADDR_LEN]), + cb->cb_mcast.mc_size]), enm->enm_addrlo, ETHER_ADDR_LEN); ETHER_NEXT_MULTI(step, enm); - cb->cb_mcast.mc_size++; + cb->cb_mcast.mc_size += ETHER_ADDR_LEN; } if (cb->cb_mcast.mc_size == 0) { /* Can't do exact mcast filtering, do ALLMULTI mode. */