+++ /dev/null
---- a/net80211/ieee80211_wireless.c
-+++ b/net80211/ieee80211_wireless.c
-@@ -1370,15 +1370,9 @@ ieee80211_ioctl_siwtxpow(struct net_devi
- int fixed, disabled;
-
- fixed = (ic->ic_flags & IEEE80211_F_TXPOW_FIXED);
-- disabled = (fixed && ic->ic_txpowlimit == 0);
-- if (rrq->disabled) {
-- if (!disabled) {
-- ic->ic_flags |= IEEE80211_F_TXPOW_FIXED;
-- ic->ic_txpowlimit = 0;
-- goto done;
-- }
-- return 0;
-- }
-+
-+ if (rrq->disabled)
-+ return -EINVAL;
-
- if (rrq->fixed) {
- if ((ic->ic_caps & IEEE80211_C_TXPMGT) == 0)
-@@ -1571,7 +1565,7 @@ ieee80211_ioctl_giwtxpow(struct net_devi
- rrq->fixed = 0;
- }
- rrq->value = txp / 2;
-- rrq->disabled = (rrq->fixed && rrq->value == 0);
-+ rrq->disabled = 0;
- rrq->flags = IW_TXPOW_DBM;
- return 0;
- }