Module Name:    src
Committed By:   dyoung
Date:           Thu Nov 12 19:29:00 UTC 2009

Modified Files:
        src/sys/dev/ic: an.c anvar.h

Log Message:
Simplify activation hook.  Replace each use of sc_invalid by either
calling config_deactivate(9) or device_is_active(9).


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/dev/ic/an.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/ic/anvar.h

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/ic/an.c
diff -u src/sys/dev/ic/an.c:1.56 src/sys/dev/ic/an.c:1.57
--- src/sys/dev/ic/an.c:1.56	Tue May 12 14:25:17 2009
+++ src/sys/dev/ic/an.c	Thu Nov 12 19:28:59 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: an.c,v 1.56 2009/05/12 14:25:17 cegger Exp $	*/
+/*	$NetBSD: an.c,v 1.57 2009/11/12 19:28:59 dyoung Exp $	*/
 /*
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wp...@ctr.columbia.edu>.  All rights reserved.
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: an.c,v 1.56 2009/05/12 14:25:17 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: an.c,v 1.57 2009/11/12 19:28:59 dyoung Exp $");
 
 #include "bpfilter.h"
 
@@ -173,11 +173,10 @@
 	int chan, chan_min, chan_max;
 
 	s = splnet();
-	sc->sc_invalid = 0;
 
 	an_wait(sc);
 	if (an_reset(sc) != 0) {
-		sc->sc_invalid = 1;
+		config_deactivate(sc->sc_dev);
 		splx(s);
 		return 1;
 	}
@@ -417,7 +416,6 @@
 		return 0;
 
 	s = splnet();
-	sc->sc_invalid = 1;
 	an_stop(ifp, 1);
 	ieee80211_ifdetach(ic);
 	if_detach(ifp);
@@ -428,23 +426,15 @@
 int
 an_activate(device_t self, enum devact act)
 {
-	struct an_softc *sc = (struct an_softc *)self;
-	int s, error = 0;
+	struct an_softc *sc = device_private(self);
 
-	s = splnet();
 	switch (act) {
-	case DVACT_ACTIVATE:
-		error = EOPNOTSUPP;
-		break;
-
 	case DVACT_DEACTIVATE:
-		sc->sc_invalid = 1;
 		if_deactivate(&sc->sc_if);
-		break;
+		return 0;
+	default:
+		return EOPNOTSUPP;
 	}
-	splx(s);
-
-	return error;
 }
 
 int
@@ -455,8 +445,7 @@
 	int i;
 	u_int16_t status;
 
-	if (!sc->sc_enabled || sc->sc_invalid ||
-	    !device_is_active(sc->sc_dev) ||
+	if (!sc->sc_enabled || !device_is_active(sc->sc_dev) ||
 	    (ifp->if_flags & IFF_RUNNING) == 0)
 		return 0;
 
@@ -468,12 +457,12 @@
 
 	/* maximum 10 loops per interrupt */
 	for (i = 0; i < 10; i++) {
-		if (!sc->sc_enabled || sc->sc_invalid)
+		if (!sc->sc_enabled || !device_is_active(sc->sc_dev))
 			return 1;
 		if (CSR_READ_2(sc, AN_SW0) != AN_MAGIC) {
 			DPRINTF(("an_intr: magic number changed: %x\n",
 			    CSR_READ_2(sc, AN_SW0)));
-			sc->sc_invalid = 1;
+			config_deactivate(sc->sc_dev);
 			return 1;
 		}
 		status = CSR_READ_2(sc, AN_EVENT_STAT);
@@ -665,7 +654,7 @@
 
 	s = splnet();
 	ieee80211_new_state(&sc->sc_ic, IEEE80211_S_INIT, -1);
-	if (!sc->sc_invalid) {
+	if (device_is_active(sc->sc_dev)) {
 		an_cmd(sc, AN_CMD_FORCE_SYNCLOSS, 0);
 		CSR_WRITE_2(sc, AN_INT_EN, 0);
 		an_cmd(sc, AN_CMD_DISABLE, 0);
@@ -699,9 +688,9 @@
 	u_int16_t len;
 	int cur, fid;
 
-	if (!sc->sc_enabled || sc->sc_invalid) {
+	if (!sc->sc_enabled || !device_is_active(sc->sc_dev)) {
 		DPRINTF(("an_start: noop: enabled %d invalid %d\n",
-		    sc->sc_enabled, sc->sc_invalid));
+		    sc->sc_enabled, !device_is_active(sc->sc_dev)));
 		return;
 	}
 

Index: src/sys/dev/ic/anvar.h
diff -u src/sys/dev/ic/anvar.h:1.18 src/sys/dev/ic/anvar.h:1.19
--- src/sys/dev/ic/anvar.h:1.18	Tue May 12 14:25:17 2009
+++ src/sys/dev/ic/anvar.h	Thu Nov 12 19:28:59 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: anvar.h,v 1.18 2009/05/12 14:25:17 cegger Exp $	*/
+/*	$NetBSD: anvar.h,v 1.19 2009/11/12 19:28:59 dyoung Exp $	*/
 /*
  * Copyright (c) 1997, 1998, 1999
  *	Bill Paul <wp...@ctr.columbia.edu>.  All rights reserved.
@@ -114,7 +114,6 @@
 				    enum ieee80211_state, int);
 
 	int			sc_enabled;
-	int			sc_invalid;
 	int			sc_attached;
 
 	int			sc_bap_id;

Reply via email to