Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Feb 2011 23:08:05 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r218827 - head/sys/dev/dc
Message-ID:  <201102182308.p1IN85Cn075873@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Fri Feb 18 23:08:05 2011
New Revision: 218827
URL: http://svn.freebsd.org/changeset/base/218827

Log:
  There is no need to execute filter configuration when driver is not
  running. Remove wrong driver state change in dc_setfilt_xircom().
  While I'm here nuke unnecessary assignments.

Modified:
  head/sys/dev/dc/if_dc.c

Modified: head/sys/dev/dc/if_dc.c
==============================================================================
--- head/sys/dev/dc/if_dc.c	Fri Feb 18 22:58:46 2011	(r218826)
+++ head/sys/dev/dc/if_dc.c	Fri Feb 18 23:08:05 2011	(r218827)
@@ -1334,7 +1334,6 @@ dc_setfilt_xircom(struct dc_softc *sc)
 
 	DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_TX_ON);
 	DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_RX_ON);
-	ifp->if_drv_flags |= IFF_DRV_RUNNING;
 	sframe->dc_status = htole32(DC_TXSTAT_OWN);
 	CSR_WRITE_4(sc, DC_TXSTART, 0xFFFFFFFF);
 
@@ -3696,14 +3695,13 @@ dc_ioctl(struct ifnet *ifp, u_long comma
 		}
 		sc->dc_if_flags = ifp->if_flags;
 		DC_UNLOCK(sc);
-		error = 0;
 		break;
 	case SIOCADDMULTI:
 	case SIOCDELMULTI:
 		DC_LOCK(sc);
-		dc_setfilt(sc);
+		if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+			dc_setfilt(sc);
 		DC_UNLOCK(sc);
-		error = 0;
 		break;
 	case SIOCGIFMEDIA:
 	case SIOCSIFMEDIA:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102182308.p1IN85Cn075873>