Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Mar 2007 13:13:50 GMT
From:      Sepherosa Ziehau <sephe@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 115413 for review
Message-ID:  <200703061313.l26DDoZa004851@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=115413

Change 115413 by sephe@sephe_zealot:sam_wifi on 2007/03/06 13:13:25

	- ic_bss is in STA table now.
	- Set ic_des_chan, even if the channel to be set to ic_des_chan is same
	  as ic_bsschan.
	
	Reviewed by:	sam@

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#69 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#69 (text+ko) ====

@@ -230,12 +230,8 @@
 	if (error != 0)
 		return error;
 	ni = ieee80211_find_node(&ic->ic_sta, macaddr);
-	if (ni == NULL) {
-		/* XXX special-case sta-mode until bss is node in ic_sta */
-		if (ic->ic_opmode != IEEE80211_M_STA)
-			return ENOENT;
-		ni = ieee80211_ref_node(ic->ic_bss);
-	}
+	if (ni == NULL)
+		return EINVAL;
 	if (ireq->i_len > sizeof(struct ieee80211req_sta_stats))
 		ireq->i_len = sizeof(struct ieee80211req_sta_stats);
 	/* NB: copy out only the statistics */
@@ -682,12 +678,8 @@
 		ni = NULL;
 	} else {
 		ni = ieee80211_find_node(&ic->ic_sta, macaddr);
-		if (ni == NULL) {
-			/* XXX special-case sta-mode until bss is in ic_sta */
-			if (ic->ic_opmode != IEEE80211_M_STA)
-				return EINVAL;		/* XXX */
-			ni = ieee80211_ref_node(ic->ic_bss);
-		}
+		if (ni == NULL)
+			return EINVAL;
 	}
 	return getstainfo_common(ic, ireq, ni, off);
 }
@@ -1736,9 +1728,9 @@
 		if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
 		    !check_mode_consistency(c, ic->ic_des_mode))
 			return EINVAL;
+		ic->ic_des_chan = c;
 		if (ic->ic_state == IEEE80211_S_RUN && c == ic->ic_bsschan)
 			return 0;	/* NB: nothing to do */
-		ic->ic_des_chan = c;
 	}
 	error = 0;
 	if ((ic->ic_opmode == IEEE80211_M_MONITOR ||
@@ -1787,9 +1779,9 @@
 		if (ic->ic_opmode == IEEE80211_M_HOSTAP &&
 		    !check_mode_consistency(c, ic->ic_des_mode))
 			return EINVAL;
+		ic->ic_des_chan = c;
 		if (ic->ic_state == IEEE80211_S_RUN && c == ic->ic_bsschan)
 			return 0;	/* NB: nothing to do */
-		ic->ic_des_chan = c;
 	}
 	error = 0;
 	if ((ic->ic_opmode == IEEE80211_M_MONITOR ||



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