Date: Wed, 27 Feb 2008 01:29:23 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 136313 for review Message-ID: <200802270129.m1R1TNLK017563@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=136313 Change 136313 by sam@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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802270129.m1R1TNLK017563>