PERFORCE change 136313 for review

Sam Leffler sam at FreeBSD.org
Wed Feb 27 01:29:25 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=136313

Change 136313 by sam at sam_ebb on 2008/02/27 01:29:05

	use EOPNOTSUPP for all requests that are rejected because the
	underlying device is not capable; there are so many cases of
	EINVAL that it's important to disambiguate these cases

Affected files ...

.. //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#32 edit

Differences ...

==== //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#32 (text+ko) ====

@@ -1535,7 +1535,7 @@
 	int isbss, ac;
 
 	if ((ic->ic_caps & IEEE80211_C_WME) == 0)
-		return EINVAL;
+		return EOPNOTSUPP;
 
 	isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
 	ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
@@ -2531,7 +2531,7 @@
 			break;
 		case IEEE80211_POWERSAVE_ON:
 			if ((vap->iv_caps & IEEE80211_C_PMGT) == 0)
-				error = EINVAL;
+				error = EOPNOTSUPP;
 			else if ((vap->iv_flags & IEEE80211_F_PMGTON) == 0) {
 				ieee80211_syncflag(vap, IEEE80211_F_PMGTON);
 				error = ERESTART;
@@ -2566,7 +2566,7 @@
 		break;
 	case IEEE80211_IOC_TXPOWER:
 		if ((ic->ic_caps & IEEE80211_C_TXPMGT) == 0)
-			return EINVAL;
+			return EOPNOTSUPP;
 		if (!(IEEE80211_TXPOWER_MIN <= ireq->i_val &&
 		      ireq->i_val <= IEEE80211_TXPOWER_MAX))
 			return EINVAL;
@@ -2605,7 +2605,7 @@
 	case IEEE80211_IOC_COUNTERMEASURES:
 		if (ireq->i_val) {
 			if ((vap->iv_flags & IEEE80211_F_WPA) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags |= IEEE80211_F_COUNTERM;
 		} else
 			vap->iv_flags &= ~IEEE80211_F_COUNTERM;
@@ -2631,7 +2631,7 @@
 	case IEEE80211_IOC_WME:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_WME) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			ieee80211_syncflag(vap, IEEE80211_F_WME);
 		} else
 			ieee80211_syncflag(vap, -IEEE80211_F_WME);
@@ -2769,7 +2769,7 @@
 	case IEEE80211_IOC_FF:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_FF) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags |= IEEE80211_F_FF;
 		} else
 			vap->iv_flags &= ~IEEE80211_F_FF;
@@ -2778,7 +2778,7 @@
 	case IEEE80211_IOC_TURBOP:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_TURBOP) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags |= IEEE80211_F_TURBOP;
 		} else
 			vap->iv_flags &= ~IEEE80211_F_TURBOP;
@@ -2787,7 +2787,7 @@
 	case IEEE80211_IOC_BGSCAN:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_BGSCAN) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags |= IEEE80211_F_BGSCAN;
 		} else
 			vap->iv_flags &= ~IEEE80211_F_BGSCAN;
@@ -2813,7 +2813,7 @@
 	case IEEE80211_IOC_FRAGTHRESHOLD:
 		if ((vap->iv_caps & IEEE80211_C_TXFRAG) == 0 &&
 		    ireq->i_val != IEEE80211_FRAG_MAX)
-			return EINVAL;
+			return EOPNOTSUPP;
 		if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
 		      ireq->i_val <= IEEE80211_FRAG_MAX))
 			return EINVAL;
@@ -2823,7 +2823,7 @@
 	case IEEE80211_IOC_BURST:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_BURST) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			ieee80211_syncflag(vap, IEEE80211_F_BURST);
 		} else
 			ieee80211_syncflag(vap, -IEEE80211_F_BURST);
@@ -2922,7 +2922,7 @@
 #if 0
 			/* XXX no capability */
 			if ((vap->iv_caps & IEEE80211_C_DOTH) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 #endif
 			vap->iv_flags |= IEEE80211_F_DOTH;
 		} else
@@ -2941,7 +2941,7 @@
 	case IEEE80211_IOC_HTCOMPAT:
 		if (ireq->i_val) {
 			if ((vap->iv_flags_ext & IEEE80211_FEXT_HT) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags_ext |= IEEE80211_FEXT_HTCOMPAT;
 		} else
 			vap->iv_flags_ext &= ~IEEE80211_FEXT_HTCOMPAT;
@@ -2953,7 +2953,7 @@
 		if (ireq->i_val) {
 			/* NB: DWDS only makes sense for WDS-capable devices */
 			if ((ic->ic_caps & IEEE80211_C_WDS) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			/* NB: DWDS is used only with ap+sta vaps */
 			if (vap->iv_opmode != IEEE80211_M_HOSTAP &&
 			    vap->iv_opmode != IEEE80211_M_STA)
@@ -2974,7 +2974,7 @@
 	case IEEE80211_IOC_WPS:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_WPA) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags_ext |= IEEE80211_FEXT_WPS;
 		} else
 			vap->iv_flags_ext &= ~IEEE80211_FEXT_WPS;
@@ -2982,7 +2982,7 @@
 	case IEEE80211_IOC_TSN:
 		if (ireq->i_val) {
 			if ((vap->iv_caps & IEEE80211_C_WPA) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 			vap->iv_flags_ext |= IEEE80211_FEXT_TSN;
 		} else
 			vap->iv_flags_ext &= ~IEEE80211_FEXT_TSN;
@@ -2995,7 +2995,7 @@
 #if 0
 			/* XXX no capability */
 			if ((vap->iv_caps & IEEE80211_C_DFS) == 0)
-				return EINVAL;
+				return EOPNOTSUPP;
 #endif
 			/* NB: DFS requires 11h support */
 			if ((vap->iv_flags & IEEE80211_F_DOTH) == 0)


More information about the p4-projects mailing list