Module Name: src Committed By: nisimura Date: Mon Feb 17 06:05:31 UTC 2020
Modified Files: src/sys/dev/pci: if_kse.c Log Message: comment mods and code tiddy ups To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/sys/dev/pci/if_kse.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/dev/pci/if_kse.c diff -u src/sys/dev/pci/if_kse.c:1.48 src/sys/dev/pci/if_kse.c:1.49 --- src/sys/dev/pci/if_kse.c:1.48 Tue Feb 4 07:37:00 2020 +++ src/sys/dev/pci/if_kse.c Mon Feb 17 06:05:31 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_kse.c,v 1.48 2020/02/04 07:37:00 skrll Exp $ */ +/* $NetBSD: if_kse.c,v 1.49 2020/02/17 06:05:31 nisimura Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.48 2020/02/04 07:37:00 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.49 2020/02/17 06:05:31 nisimura Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -66,9 +66,9 @@ __KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1 #define KSE_LINKDEBUG 0 #define CSR_READ_4(sc, off) \ - bus_space_read_4(sc->sc_st, sc->sc_sh, off) + bus_space_read_4((sc)->sc_st, (sc)->sc_sh, (off)) #define CSR_WRITE_4(sc, off, val) \ - bus_space_write_4(sc->sc_st, sc->sc_sh, off, val) + bus_space_write_4((sc)->sc_st, (sc)->sc_sh, (off), (val)) #define CSR_READ_2(sc, off) \ bus_space_read_2((sc)->sc_st, (sc)->sc_sh, (off)) #define CSR_WRITE_2(sc, off, val) \ @@ -833,7 +833,7 @@ kse_init(struct ifnet *ifp) CSR_READ_2(sc, SGCR3) | CR3_USEFC); } - /* build multicast hash filter if necessary */ + /* accept multicast frame or run promisc mode */ kse_set_filter(sc); /* set current media */ @@ -1098,16 +1098,18 @@ kse_set_filter(struct kse_softc *sc) int i; sc->sc_rxc &= ~(RXC_MHTE | RXC_RM | RXC_RA); - ifp->if_flags &= ~IFF_ALLMULTI; if (ifp->if_flags & IFF_PROMISC) { ifp->if_flags |= IFF_ALLMULTI; goto update; } + ifp->if_flags &= ~IFF_ALLMULTI; + /* clear perfect match filter and prepare mcast hash table */ for (i = 0; i < 16; i++) CSR_WRITE_4(sc, MAAH0 + i*8, 0); crc = mchash[0] = mchash[1] = 0; + ETHER_LOCK(ec); ETHER_FIRST_MULTI(step, ec, enm); i = 0;