Author: yongari
Date: Mon Jan 12 07:37:06 2015
New Revision: 277048
URL: https://svnweb.freebsd.org/changeset/base/277048

Log:
  Enable receive filter in sis_rxfilter().
  While I'm here add a check for driver running state for multicast
  filter handling.
  
  Suggested by: b...@openbsd.org

Modified:
  head/sys/dev/sis/if_sis.c

Modified: head/sys/dev/sis/if_sis.c
==============================================================================
--- head/sys/dev/sis/if_sis.c   Mon Jan 12 07:36:25 2015        (r277047)
+++ head/sys/dev/sis/if_sis.c   Mon Jan 12 07:37:06 2015        (r277048)
@@ -758,7 +758,8 @@ sis_rxfilter_ns(struct sis_softc *sc)
                if_maddr_runlock(ifp);
        }
 
-       CSR_WRITE_4(sc, SIS_RXFILT_CTL, filter);
+       /* Turn the receive filter on */
+       CSR_WRITE_4(sc, SIS_RXFILT_CTL, filter | SIS_RXFILTCTL_ENABLE);
        CSR_READ_4(sc, SIS_RXFILT_CTL);
 }
 
@@ -820,7 +821,8 @@ sis_rxfilter_sis(struct sis_softc *sc)
                CSR_WRITE_4(sc, SIS_RXFILT_DATA, hashes[i]);
        }
 
-       CSR_WRITE_4(sc, SIS_RXFILT_CTL, filter);
+       /* Turn the receive filter on */
+       CSR_WRITE_4(sc, SIS_RXFILT_CTL, filter | SIS_RXFILTCTL_ENABLE);
        CSR_READ_4(sc, SIS_RXFILT_CTL);
 }
 
@@ -2015,8 +2017,6 @@ sis_initl(struct sis_softc *sc)
        }
 
        sis_rxfilter(sc);
-       /* Turn the receive filter on */
-       SIS_SETBIT(sc, SIS_RXFILT_CTL, SIS_RXFILTCTL_ENABLE);
 
        /*
         * Load the address of the RX and TX lists.
@@ -2138,7 +2138,8 @@ sis_ioctl(struct ifnet *ifp, u_long comm
        case SIOCADDMULTI:
        case SIOCDELMULTI:
                SIS_LOCK(sc);
-               sis_rxfilter(sc);
+               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+                       sis_rxfilter(sc);
                SIS_UNLOCK(sc);
                break;
        case SIOCGIFMEDIA:
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to