From bbc97003109138e7f7c90ee91104317a42f9b959 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 23 Sep 2009 13:32:22 +0000 Subject: [PATCH] madwifi: fix maximum txpower display SVN-Revision: 17687 --- package/madwifi/patches/414-txpower.patch | 48 ++++--- package/madwifi/patches/415-chan_switch.patch | 2 +- .../madwifi/patches/417-beacon_txpower.patch | 6 +- .../patches/421-channel_handling.patch | 8 +- package/madwifi/patches/424-timing.patch | 2 +- .../madwifi/patches/430-use_netdev_priv.patch | 134 +++++++++--------- package/madwifi/patches/432-netdev_ops.patch | 6 +- .../madwifi/patches/446-single_module.patch | 2 +- 8 files changed, 111 insertions(+), 97 deletions(-) diff --git a/package/madwifi/patches/414-txpower.patch b/package/madwifi/patches/414-txpower.patch index 753cd010fd..6b33b8b1c0 100644 --- a/package/madwifi/patches/414-txpower.patch +++ b/package/madwifi/patches/414-txpower.patch @@ -38,7 +38,7 @@ IEEE80211_KEYIX_NONE); --- a/net80211/ieee80211_var.h +++ b/net80211/ieee80211_var.h -@@ -343,8 +343,9 @@ struct ieee80211com { +@@ -343,8 +343,8 @@ struct ieee80211com { u_int16_t ic_holdover; /* PM hold over duration */ u_int16_t ic_bmissthreshold; /* beacon miss threshold (# beacons) */ unsigned long ic_bmiss_guard; /* when to cease ignoring bmiss (jiffies) */ @@ -46,13 +46,34 @@ - u_int16_t ic_newtxpowlimit; /* tx power limit to change to (in 0.5 dBm) */ + u_int16_t ic_txpowlimit; /* configured global tx power limit (in 0.5 dBm) */ + u_int16_t ic_max_txpower; /* global hardware tx power limit */ -+ u_int16_t ic_cur_txpower; /* current tx power */ u_int16_t ic_uapsdmaxtriggers; /* max triggers that could arrive */ u_int8_t ic_coverageclass; /* coverage class */ u_int8_t ic_protmode_rssi; /* rssi threshold for protection mode */ --- a/net80211/ieee80211_wireless.c +++ b/net80211/ieee80211_wireless.c -@@ -920,17 +920,23 @@ ieee80211_ioctl_giwrange(struct net_devi +@@ -908,6 +908,21 @@ ieee80211_ioctl_giwessid(struct net_devi + return 0; + } + ++static u16 ++ieee80211_get_maxtxpow(struct ieee80211com *ic) ++{ ++ u_int16_t txp = IEEE80211_TXPOWER_MAX; ++ ++ if (ic->ic_bsschan && (ic->ic_bsschan != IEEE80211_CHAN_ANYC)) ++ txp = min(txp, (u16) ic->ic_bsschan->ic_maxpower); ++ ++ if (ic->ic_max_txpower > 0) ++ txp = min(txp, ic->ic_max_txpower); ++ ++ return txp; ++} ++ ++ + static int + ieee80211_ioctl_giwrange(struct net_device *dev, struct iw_request_info *info, + struct iw_point *data, char *extra) +@@ -920,17 +935,21 @@ ieee80211_ioctl_giwrange(struct net_devi u_int8_t reported[IEEE80211_CHAN_BYTES]; /* XXX stack usage? */ int i, r; int step = 0; @@ -61,9 +82,7 @@ data->length = sizeof(struct iw_range); memset(range, 0, sizeof(struct iw_range)); -+ power = ic->ic_max_txpower; -+ if (ic->ic_bsschan && (ic->ic_bsschan != IEEE80211_CHAN_ANYC)) -+ power = min(power, (u_int16_t) ic->ic_bsschan->ic_maxpower); ++ power = ieee80211_get_maxtxpow(ic); + /* txpower (128 values, but will print out only IW_MAX_TXPOWER) */ - range->num_txpower = (ic->ic_txpowlimit >= 8) ? IW_MAX_TXPOWER : ic->ic_txpowlimit; @@ -79,7 +98,7 @@ - (IW_MAX_TXPOWER - i - 1) * step; range->txpower_capa = IW_TXPOW_DBM; -@@ -1379,13 +1385,11 @@ ieee80211_ioctl_siwtxpow(struct net_devi +@@ -1379,13 +1398,11 @@ ieee80211_ioctl_siwtxpow(struct net_devi int fixed, disabled; fixed = (ic->ic_flags & IEEE80211_F_TXPOW_FIXED); @@ -95,7 +114,7 @@ goto done; } return 0; -@@ -1396,30 +1400,12 @@ ieee80211_ioctl_siwtxpow(struct net_devi +@@ -1396,30 +1413,12 @@ ieee80211_ioctl_siwtxpow(struct net_devi return -EOPNOTSUPP; if (rrq->flags != IW_TXPOW_DBM) return -EINVAL; @@ -129,7 +148,7 @@ ic->ic_flags &= ~IEEE80211_F_TXPOW_FIXED; } done: -@@ -1588,9 +1574,23 @@ ieee80211_ioctl_giwtxpow(struct net_devi +@@ -1588,9 +1587,18 @@ ieee80211_ioctl_giwtxpow(struct net_devi { struct ieee80211vap *vap = dev->priv; struct ieee80211com *ic = vap->iv_ic; @@ -138,14 +157,9 @@ - rrq->fixed = (ic->ic_flags & IEEE80211_F_TXPOW_FIXED) != 0; + unsigned int power = ic->ic_txpowlimit; + struct ieee80211_channel *c; -+ u_int16_t txp = ic->ic_max_txpower; ++ u_int16_t txp; + -+ if (ic->ic_bsschan && (ic->ic_bsschan != IEEE80211_CHAN_ANYC)) { -+ txp = min(txp, (u16) ic->ic_bsschan->ic_maxpower); -+ } -+ if (ic->ic_cur_txpower > 0) { -+ txp = min(txp, ic->ic_cur_txpower); -+ } ++ txp = ieee80211_get_maxtxpow(ic); + if (ic->ic_flags & IEEE80211_F_TXPOW_FIXED) { + txp = min(txp, ic->ic_txpowlimit); + rrq->fixed = 1; @@ -242,7 +256,7 @@ - if (new_clamped_maxtxpower != prev_clamped_maxtxpower) - ath_hal_settxpowlimit(ah, new_clamped_maxtxpower); + ath_set_clamped_maxtxpower(sc, ic->ic_txpowlimit); -+ ic->ic_cur_txpower = ath_get_clamped_maxtxpower(sc); ++ ic->ic_max_txpower = ath_get_clamped_maxtxpower(sc); } #ifdef ATH_SUPERG_XR diff --git a/package/madwifi/patches/415-chan_switch.patch b/package/madwifi/patches/415-chan_switch.patch index 6883136430..6dc5da8383 100644 --- a/package/madwifi/patches/415-chan_switch.patch +++ b/package/madwifi/patches/415-chan_switch.patch @@ -171,7 +171,7 @@ /* Don't allow to change to channel with radar found */ if (c->ic_flags & IEEE80211_CHAN_RADAR) -@@ -4626,7 +4598,13 @@ static void +@@ -4634,7 +4606,13 @@ static void pre_announced_chanswitch(struct net_device *dev, u_int32_t channel, u_int32_t tbtt) { struct ieee80211vap *vap = dev->priv; struct ieee80211com *ic = vap->iv_ic; diff --git a/package/madwifi/patches/417-beacon_txpower.patch b/package/madwifi/patches/417-beacon_txpower.patch index 4d713901e0..8a59c1211d 100644 --- a/package/madwifi/patches/417-beacon_txpower.patch +++ b/package/madwifi/patches/417-beacon_txpower.patch @@ -48,7 +48,7 @@ struct ieee80211_node *iv_bss; /* information for this node */ --- a/net80211/ieee80211_wireless.c +++ b/net80211/ieee80211_wireless.c -@@ -2863,6 +2863,9 @@ ieee80211_ioctl_setparam(struct net_devi +@@ -2871,6 +2871,9 @@ ieee80211_ioctl_setparam(struct net_devi case IEEE80211_PARAM_PROBEREQ: vap->iv_no_probereq = !value; break; @@ -58,7 +58,7 @@ #ifdef ATH_REVERSE_ENGINEERING case IEEE80211_PARAM_DUMPREGS: ieee80211_dump_registers(dev, info, w, extra); -@@ -3228,6 +3231,9 @@ ieee80211_ioctl_getparam(struct net_devi +@@ -3236,6 +3239,9 @@ ieee80211_ioctl_getparam(struct net_devi case IEEE80211_PARAM_PROBEREQ: param[0] = !vap->iv_no_probereq; break; @@ -68,7 +68,7 @@ default: return -EOPNOTSUPP; } -@@ -5802,6 +5808,10 @@ static const struct iw_priv_args ieee802 +@@ -5810,6 +5816,10 @@ static const struct iw_priv_args ieee802 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "probereq"}, { IEEE80211_PARAM_PROBEREQ, 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_probereq"}, diff --git a/package/madwifi/patches/421-channel_handling.patch b/package/madwifi/patches/421-channel_handling.patch index c60cc9c3cd..e5302c1389 100644 --- a/package/madwifi/patches/421-channel_handling.patch +++ b/package/madwifi/patches/421-channel_handling.patch @@ -999,7 +999,7 @@ u_int16_t ic_modecaps; /* set of mode capabilities */ u_int16_t ic_curmode; /* current mode */ u_int16_t ic_lintval; /* beacon interval */ -@@ -715,6 +713,7 @@ MALLOC_DECLARE(M_80211_VAP); +@@ -714,6 +712,7 @@ MALLOC_DECLARE(M_80211_VAP); int ieee80211_ifattach(struct ieee80211com *); void ieee80211_ifdetach(struct ieee80211com *); @@ -1007,7 +1007,7 @@ int ieee80211_vap_setup(struct ieee80211com *, struct net_device *, const char *, int, int, struct ieee80211vap *); int ieee80211_vap_attach(struct ieee80211vap *, ifm_change_cb_t, ifm_stat_cb_t); -@@ -794,6 +793,23 @@ ieee80211_anyhdrspace(struct ieee80211co +@@ -793,6 +792,23 @@ ieee80211_anyhdrspace(struct ieee80211co return size; } @@ -1183,7 +1183,7 @@ if ((ic->ic_flags & IEEE80211_F_USEPROT) && --- a/net80211/ieee80211_wireless.c +++ b/net80211/ieee80211_wireless.c -@@ -2134,7 +2134,7 @@ ieee80211_ioctl_setmode(struct net_devic +@@ -2142,7 +2142,7 @@ ieee80211_ioctl_setmode(struct net_devic vap->iv_des_mode = mode; if (IS_UP_AUTO(vap)) @@ -1192,7 +1192,7 @@ retv = 0; } -@@ -4082,46 +4082,60 @@ ieee80211_ioctl_getchanlist(struct net_d +@@ -4090,46 +4090,60 @@ ieee80211_ioctl_getchanlist(struct net_d return 0; } diff --git a/package/madwifi/patches/424-timing.patch b/package/madwifi/patches/424-timing.patch index ad2e8ac72f..4dfa3c97a6 100644 --- a/package/madwifi/patches/424-timing.patch +++ b/package/madwifi/patches/424-timing.patch @@ -541,7 +541,7 @@ ath_rate_node_init(struct ath_softc *sc, struct ath_node *an) --- a/net80211/ieee80211_wireless.c +++ b/net80211/ieee80211_wireless.c -@@ -2737,6 +2737,7 @@ ieee80211_ioctl_setparam(struct net_devi +@@ -2745,6 +2745,7 @@ ieee80211_ioctl_setparam(struct net_devi case IEEE80211_PARAM_COVERAGE_CLASS: if (value <= IEEE80211_COVERAGE_CLASS_MAX) { ic->ic_coverageclass = value; diff --git a/package/madwifi/patches/430-use_netdev_priv.patch b/package/madwifi/patches/430-use_netdev_priv.patch index 91bdd297c4..ad2b6d494d 100644 --- a/package/madwifi/patches/430-use_netdev_priv.patch +++ b/package/madwifi/patches/430-use_netdev_priv.patch @@ -1327,7 +1327,7 @@ if (vap->iv_opmode == IEEE80211_M_WDS) return -EOPNOTSUPP; -@@ -884,7 +884,7 @@ static int +@@ -899,7 +899,7 @@ static int ieee80211_ioctl_giwrange(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1336,7 +1336,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni = vap->iv_bss; struct iw_range *range = (struct iw_range *) extra; -@@ -1034,7 +1034,7 @@ ieee80211_ioctl_setspy(struct net_device +@@ -1047,7 +1047,7 @@ ieee80211_ioctl_setspy(struct net_device struct iw_point *data, char *extra) { /* save the list of node addresses */ @@ -1345,7 +1345,7 @@ struct sockaddr address[IW_MAX_SPY]; unsigned int number = data->length; int i; -@@ -1072,7 +1072,7 @@ ieee80211_ioctl_getspy(struct net_device +@@ -1085,7 +1085,7 @@ ieee80211_ioctl_getspy(struct net_device * locate nodes by mac (ieee80211_find_node()), * copy out rssi, set updated flag appropriately */ @@ -1354,7 +1354,7 @@ struct ieee80211_node_table *nt = &vap->iv_ic->ic_sta; struct ieee80211_node *ni; struct ieee80211com *ic = vap->iv_ic; -@@ -1120,7 +1120,7 @@ static int +@@ -1133,7 +1133,7 @@ static int ieee80211_ioctl_setthrspy(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1363,7 +1363,7 @@ struct iw_thrspy threshold; if (data->length != 1) -@@ -1157,7 +1157,7 @@ static int +@@ -1170,7 +1170,7 @@ static int ieee80211_ioctl_getthrspy(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1372,7 +1372,7 @@ struct ieee80211com *ic = vap->iv_ic; struct iw_thrspy *threshold; -@@ -1178,7 +1178,7 @@ static int +@@ -1191,7 +1191,7 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev, struct iw_request_info *info, __u32 *mode, char *extra) { @@ -1381,7 +1381,7 @@ struct ifmediareq imr; int valid = 0; -@@ -1203,7 +1203,7 @@ static int +@@ -1216,7 +1216,7 @@ static int ieee80211_ioctl_giwmode(struct net_device *dev, struct iw_request_info *info, __u32 *mode, char *extra) { @@ -1390,7 +1390,7 @@ struct ifmediareq imr; memset(&imr, 0, sizeof(imr)); -@@ -1226,7 +1226,7 @@ static int +@@ -1239,7 +1239,7 @@ static int ieee80211_ioctl_siwpower(struct net_device *dev, struct iw_request_info *info, struct iw_param *wrq, char *extra) { @@ -1399,7 +1399,7 @@ struct ieee80211com *ic = vap->iv_ic; /* XXX: These values, flags, and caps do not seem to be used elsewhere -@@ -1265,7 +1265,7 @@ static int +@@ -1278,7 +1278,7 @@ static int ieee80211_ioctl_giwpower(struct net_device *dev, struct iw_request_info *info, struct iw_param *rrq, char *extra) { @@ -1408,7 +1408,7 @@ struct ieee80211com *ic = vap->iv_ic; rrq->disabled = (ic->ic_flags & IEEE80211_F_PMGTON) == 0; -@@ -1289,7 +1289,7 @@ static int +@@ -1302,7 +1302,7 @@ static int ieee80211_ioctl_siwretry(struct net_device *dev, struct iw_request_info *info, struct iw_param *rrq, char *extra) { @@ -1417,7 +1417,7 @@ struct ieee80211com *ic = vap->iv_ic; if (rrq->disabled) { -@@ -1321,7 +1321,7 @@ static int +@@ -1334,7 +1334,7 @@ static int ieee80211_ioctl_giwretry(struct net_device *dev, struct iw_request_info *info, struct iw_param *rrq, char *extra) { @@ -1426,7 +1426,7 @@ rrq->disabled = (vap->iv_flags & IEEE80211_F_SWRETRY) == 0; if (!rrq->disabled) { -@@ -1352,7 +1352,7 @@ static int +@@ -1365,7 +1365,7 @@ static int ieee80211_ioctl_siwtxpow(struct net_device *dev, struct iw_request_info *info, struct iw_param *rrq, char *extra) { @@ -1435,7 +1435,7 @@ struct ieee80211com *ic = vap->iv_ic; int fixed, disabled; -@@ -1389,7 +1389,7 @@ ieee80211_get_txcont(struct net_device * +@@ -1402,7 +1402,7 @@ ieee80211_get_txcont(struct net_device * struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1444,7 +1444,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_txcont(ic); return 0; -@@ -1400,7 +1400,7 @@ ieee80211_get_dfs_cac_time(struct net_de +@@ -1413,7 +1413,7 @@ ieee80211_get_dfs_cac_time(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1453,7 +1453,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_dfs_cac_time(ic); return 0; -@@ -1411,7 +1411,7 @@ ieee80211_get_dfs_excl_period(struct net +@@ -1424,7 +1424,7 @@ ieee80211_get_dfs_excl_period(struct net struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1462,7 +1462,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_dfs_excl_period(ic); return 0; -@@ -1421,7 +1421,7 @@ ieee80211_set_dfs_cac_time(struct net_de +@@ -1434,7 +1434,7 @@ ieee80211_set_dfs_cac_time(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1471,7 +1471,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_dfs_cac_time(ic, params[1]); return 0; -@@ -1431,7 +1431,7 @@ ieee80211_set_dfs_excl_period (struct n +@@ -1444,7 +1444,7 @@ ieee80211_set_dfs_excl_period (struct n struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1480,7 +1480,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_dfs_excl_period(ic, params[1]); return 0; -@@ -1442,7 +1442,7 @@ ieee80211_get_dfs_testmode(struct net_de +@@ -1455,7 +1455,7 @@ ieee80211_get_dfs_testmode(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1489,7 +1489,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_dfs_testmode(ic); return 0; -@@ -1453,7 +1453,7 @@ ieee80211_get_txcont_rate(struct net_dev +@@ -1466,7 +1466,7 @@ ieee80211_get_txcont_rate(struct net_dev struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1498,7 +1498,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_txcont_rate(ic); return 0; -@@ -1464,7 +1464,7 @@ ieee80211_set_txcont(struct net_device * +@@ -1477,7 +1477,7 @@ ieee80211_set_txcont(struct net_device * void *w, char *extra) { int *params = (int*) extra; @@ -1507,7 +1507,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_txcont(ic, params[1]); return 0; -@@ -1475,7 +1475,7 @@ ieee80211_set_dfs_testmode(struct net_de +@@ -1488,7 +1488,7 @@ ieee80211_set_dfs_testmode(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1516,7 +1516,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_dfs_testmode(ic, params[1]); return 0; -@@ -1486,7 +1486,7 @@ ieee80211_set_txcont_rate(struct net_dev +@@ -1499,7 +1499,7 @@ ieee80211_set_txcont_rate(struct net_dev struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1525,7 +1525,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_txcont_rate(ic, params[1]); return 0; -@@ -1497,7 +1497,7 @@ ieee80211_set_txcont_power(struct net_de +@@ -1510,7 +1510,7 @@ ieee80211_set_txcont_power(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1534,7 +1534,7 @@ struct ieee80211com *ic = vap->iv_ic; ic->ic_set_txcont_power(ic, params[1]); return 0; -@@ -1508,7 +1508,7 @@ ieee80211_get_txcont_power(struct net_de +@@ -1521,7 +1521,7 @@ ieee80211_get_txcont_power(struct net_de struct iw_request_info *info, void *w, char *extra) { int *params = (int*) extra; @@ -1543,7 +1543,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_get_txcont_power(ic); return 0; -@@ -1520,7 +1520,7 @@ ieee80211_ioctl_hal_map(struct net_devic +@@ -1533,7 +1533,7 @@ ieee80211_ioctl_hal_map(struct net_devic void *w, char *extra) { int *params = (int*) extra; @@ -1552,7 +1552,7 @@ struct ieee80211com *ic = vap->iv_ic; params[0] = ic->ic_dump_hal_map(ic); return 0; -@@ -1532,7 +1532,7 @@ ieee80211_ioctl_radar(struct net_device +@@ -1545,7 +1545,7 @@ ieee80211_ioctl_radar(struct net_device void *w, char *extra) { int *params = (int*) extra; @@ -1561,7 +1561,7 @@ struct ieee80211com *ic = vap->iv_ic; if (!(ic->ic_flags & IEEE80211_F_DOTH)) return 0; -@@ -1544,7 +1544,7 @@ static int +@@ -1557,7 +1557,7 @@ static int ieee80211_ioctl_giwtxpow(struct net_device *dev, struct iw_request_info *info, struct iw_param *rrq, char *extra) { @@ -1570,7 +1570,7 @@ struct ieee80211com *ic = vap->iv_ic; unsigned int power = ic->ic_txpowlimit; struct ieee80211_channel *c; -@@ -1573,7 +1573,7 @@ static int +@@ -1581,7 +1581,7 @@ static int ieee80211_dump_registers(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { unsigned int *params = (unsigned int*) extra; @@ -1579,7 +1579,7 @@ struct ieee80211com *ic = vap->iv_ic; switch (params[1]) { case 2: -@@ -1596,7 +1596,7 @@ static int +@@ -1604,7 +1604,7 @@ static int ieee80211_ioctl_writereg(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { unsigned int *params = (unsigned int*) extra; @@ -1588,7 +1588,7 @@ struct ieee80211com *ic = vap->iv_ic; return ic->ic_write_register(ic, params[0], params[1]); } -@@ -1607,7 +1607,7 @@ static int +@@ -1615,7 +1615,7 @@ static int ieee80211_ioctl_readreg(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { unsigned int *params = (unsigned int*) extra; @@ -1597,7 +1597,7 @@ struct ieee80211com *ic = vap->iv_ic; return ic->ic_read_register(ic, params[0], ¶ms[0]); } -@@ -1643,7 +1643,7 @@ static int +@@ -1651,7 +1651,7 @@ static int ieee80211_ioctl_iwaplist(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1606,7 +1606,7 @@ struct ieee80211com *ic = vap->iv_ic; struct waplistreq req; /* XXX off stack */ -@@ -1665,7 +1665,7 @@ static int +@@ -1673,7 +1673,7 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1615,7 +1615,7 @@ /* * XXX don't permit a scan to be started unless we -@@ -1989,7 +1989,7 @@ static int +@@ -1997,7 +1997,7 @@ static int ieee80211_ioctl_giwscan(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1624,7 +1624,7 @@ struct ieee80211com *ic = vap->iv_ic; struct iwscanreq req; int res = 0; -@@ -2090,7 +2090,7 @@ static int +@@ -2098,7 +2098,7 @@ static int ieee80211_ioctl_setmode(struct net_device *dev, struct iw_request_info *info, struct iw_point *wri, char *extra) { @@ -1633,7 +1633,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ifreq ifr; char s[6]; /* big enough for ``11adt'' */ -@@ -2214,10 +2214,10 @@ ieee80211_setathcap(struct ieee80211vap +@@ -2222,10 +2222,10 @@ ieee80211_setathcap(struct ieee80211vap static int ieee80211_set_turbo(struct net_device *dev, int flag) { @@ -1646,7 +1646,7 @@ int nvap = 0; TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) -@@ -2238,7 +2238,7 @@ static int +@@ -2246,7 +2246,7 @@ static int ieee80211_ioctl_setparam(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1655,7 +1655,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_rsnparms *rsn = &vap->iv_bss->ni_rsn; unsigned int *i = (unsigned int *) extra; -@@ -2918,7 +2918,7 @@ static int +@@ -2926,7 +2926,7 @@ static int ieee80211_ioctl_getmode(struct net_device *dev, struct iw_request_info *info, struct iw_point *wri, char *extra) { @@ -1664,7 +1664,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ifmediareq imr; -@@ -2956,7 +2956,7 @@ static int +@@ -2964,7 +2964,7 @@ static int ieee80211_ioctl_getparam(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1673,7 +1673,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_rsnparms *rsn = &vap->iv_bss->ni_rsn; unsigned int *param = (unsigned int *) extra; -@@ -3301,7 +3301,7 @@ static int +@@ -3309,7 +3309,7 @@ static int ieee80211_ioctl_setoptie(struct net_device *dev, struct iw_request_info *info, struct iw_point *wri, char *extra) { @@ -1682,7 +1682,7 @@ void *ie; /* -@@ -3335,7 +3335,7 @@ static int +@@ -3343,7 +3343,7 @@ static int ieee80211_ioctl_getoptie(struct net_device *dev, struct iw_request_info *info, struct iw_point *wri, char *extra) { @@ -1691,7 +1691,7 @@ if (vap->iv_opt_ie == NULL) { wri->length = 0; -@@ -3399,7 +3399,7 @@ ieee80211_ioctl_setappiebuf(struct net_d +@@ -3407,7 +3407,7 @@ ieee80211_ioctl_setappiebuf(struct net_d struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1700,7 +1700,7 @@ struct ieee80211req_getset_appiebuf *iebuf = (struct ieee80211req_getset_appiebuf *)extra; enum ieee80211_opmode chk_opmode; -@@ -3441,7 +3441,7 @@ static int +@@ -3449,7 +3449,7 @@ static int ieee80211_ioctl_getappiebuf(struct net_device *dev, struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1709,7 +1709,7 @@ struct ieee80211req_getset_appiebuf *iebuf = (struct ieee80211req_getset_appiebuf *)extra; int max_iebuf_len; -@@ -3482,7 +3482,7 @@ static int +@@ -3490,7 +3490,7 @@ static int ieee80211_ioctl_setfilter(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1718,7 +1718,7 @@ struct ieee80211req_set_filter *app_filter = (struct ieee80211req_set_filter *)extra; if ((extra == NULL) || (app_filter->app_filterype & ~IEEE80211_FILTER_TYPE_ALL)) -@@ -3497,7 +3497,7 @@ static int +@@ -3505,7 +3505,7 @@ static int ieee80211_ioctl_setkey(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1727,7 +1727,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211req_key *ik = (struct ieee80211req_key *)extra; struct ieee80211_node *ni; -@@ -3580,7 +3580,7 @@ ieee80211_ioctl_setkey(struct net_device +@@ -3588,7 +3588,7 @@ ieee80211_ioctl_setkey(struct net_device static int ieee80211_ioctl_getkey(struct net_device *dev, struct iwreq *iwr) { @@ -1736,7 +1736,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni; struct ieee80211req_key ik; -@@ -3641,7 +3641,7 @@ static int +@@ -3649,7 +3649,7 @@ static int ieee80211_ioctl_delkey(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1745,7 +1745,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211req_del_key *dk = (struct ieee80211req_del_key *)extra; ieee80211_keyix_t kix; -@@ -3715,7 +3715,7 @@ static int +@@ -3723,7 +3723,7 @@ static int ieee80211_ioctl_setmlme(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1754,7 +1754,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211req_mlme *mlme = (struct ieee80211req_mlme *)extra; struct ieee80211_node *ni; -@@ -3818,7 +3818,7 @@ static int +@@ -3826,7 +3826,7 @@ static int ieee80211_ioctl_wdsaddmac(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1763,7 +1763,7 @@ struct sockaddr *sa = (struct sockaddr *)extra; struct ieee80211com *ic = vap->iv_ic; struct ieee80211vap *avp; -@@ -3847,7 +3847,7 @@ static int +@@ -3855,7 +3855,7 @@ static int ieee80211_ioctl_wdssetmac(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1772,7 +1772,7 @@ struct sockaddr *sa = (struct sockaddr *)extra; if (vap->iv_opmode != IEEE80211_M_WDS) -@@ -3914,7 +3914,7 @@ ieee80211_ioctl_setscanlist(struct net_d +@@ -3922,7 +3922,7 @@ ieee80211_ioctl_setscanlist(struct net_d struct iw_request_info *info, struct iw_point *data, char *extra) { @@ -1781,7 +1781,7 @@ struct ieee80211com *ic = vap->iv_ic; char *s, *next; int val = 1; -@@ -3989,7 +3989,7 @@ static int +@@ -3997,7 +3997,7 @@ static int ieee80211_ioctl_addmac(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1790,7 +1790,7 @@ struct sockaddr *sa = (struct sockaddr *)extra; const struct ieee80211_aclator *acl = vap->iv_acl; -@@ -4007,7 +4007,7 @@ static int +@@ -4015,7 +4015,7 @@ static int ieee80211_ioctl_delmac(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1799,7 +1799,7 @@ struct sockaddr *sa = (struct sockaddr *)extra; const struct ieee80211_aclator *acl = vap->iv_acl; -@@ -4025,7 +4025,7 @@ static int +@@ -4033,7 +4033,7 @@ static int ieee80211_ioctl_setchanlist(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1808,7 +1808,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211req_chanlist *list = (struct ieee80211req_chanlist *)extra; -@@ -4076,7 +4076,7 @@ static int +@@ -4084,7 +4084,7 @@ static int ieee80211_ioctl_getchanlist(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1817,7 +1817,7 @@ struct ieee80211com *ic = vap->iv_ic; memcpy(extra, ic->ic_chan_active, sizeof(ic->ic_chan_active)); -@@ -4097,7 +4097,7 @@ static int +@@ -4105,7 +4105,7 @@ static int ieee80211_ioctl_getchaninfo(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1826,7 +1826,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211req_chaninfo *chans = (struct ieee80211req_chaninfo *)extra; -@@ -4144,7 +4144,7 @@ static int +@@ -4152,7 +4152,7 @@ static int ieee80211_ioctl_setwmmparams(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1835,7 +1835,7 @@ unsigned int *param = (unsigned int *) extra; unsigned int ac = (param[1] < WME_NUM_AC) ? param[1] : WME_AC_BE; unsigned int bss = param[2]; -@@ -4232,7 +4232,7 @@ static int +@@ -4240,7 +4240,7 @@ static int ieee80211_ioctl_getwmmparams(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1844,7 +1844,7 @@ unsigned int *param = (unsigned int *) extra; unsigned int ac = (param[1] < WME_NUM_AC) ? param[1] : WME_AC_BE; struct ieee80211_wme_state *wme = &vap->iv_ic->ic_wme; -@@ -4267,7 +4267,7 @@ ieee80211_ioctl_getwmmparams(struct net_ +@@ -4275,7 +4275,7 @@ ieee80211_ioctl_getwmmparams(struct net_ static int ieee80211_ioctl_getwpaie(struct net_device *dev, struct iwreq *iwr) { @@ -1853,7 +1853,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni; struct ieee80211req_wpaie wpaie; -@@ -4301,7 +4301,7 @@ ieee80211_ioctl_getwpaie(struct net_devi +@@ -4309,7 +4309,7 @@ ieee80211_ioctl_getwpaie(struct net_devi static int ieee80211_ioctl_getstastats(struct net_device *dev, struct iwreq *iwr) { @@ -1862,7 +1862,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni; u_int8_t macaddr[IEEE80211_ADDR_LEN]; -@@ -4420,7 +4420,7 @@ get_scan_result(void *arg, const struct +@@ -4428,7 +4428,7 @@ get_scan_result(void *arg, const struct static int ieee80211_ioctl_getscanresults(struct net_device *dev, struct iwreq *iwr) { @@ -1871,7 +1871,7 @@ struct ieee80211com *ic = vap->iv_ic; struct scanreq req; int error; -@@ -4583,7 +4583,7 @@ get_sta_info(void *arg, struct ieee80211 +@@ -4591,7 +4591,7 @@ get_sta_info(void *arg, struct ieee80211 static int ieee80211_ioctl_getstainfo(struct net_device *dev, struct iwreq *iwr) { @@ -1880,7 +1880,7 @@ struct ieee80211com *ic = vap->iv_ic; struct stainforeq req; int error; -@@ -4617,7 +4617,7 @@ ieee80211_ioctl_getstainfo(struct net_de +@@ -4625,7 +4625,7 @@ ieee80211_ioctl_getstainfo(struct net_de static void pre_announced_chanswitch(struct net_device *dev, u_int32_t channel, u_int32_t tbtt) { @@ -1889,7 +1889,7 @@ struct ieee80211com *ic = vap->iv_ic; struct ieee80211vap *avp; -@@ -4635,7 +4635,7 @@ static int +@@ -4643,7 +4643,7 @@ static int ieee80211_ioctl_chanswitch(struct net_device *dev, struct iw_request_info *info, void *w, char *extra) { @@ -1898,7 +1898,7 @@ struct ieee80211com *ic = vap->iv_ic; unsigned int *param = (unsigned int *) extra; -@@ -4680,7 +4680,7 @@ static int +@@ -4688,7 +4688,7 @@ static int ieee80211_ioctl_giwgenie(struct net_device *dev, struct iw_request_info *info, struct iw_point *out, char *buf) { @@ -1907,7 +1907,7 @@ if (out->length < vap->iv_opt_ie_len) return -E2BIG; -@@ -5213,7 +5213,7 @@ static int +@@ -5221,7 +5221,7 @@ static int ieee80211_ioctl_giwencodeext(struct net_device *dev, struct iw_request_info *info, struct iw_point *erq, char *extra) { @@ -1916,7 +1916,7 @@ struct iw_encode_ext *ext; struct ieee80211_key *wk; ieee80211_keyix_t kix; -@@ -5273,7 +5273,7 @@ static int +@@ -5281,7 +5281,7 @@ static int ieee80211_ioctl_siwencodeext(struct net_device *dev, struct iw_request_info *info, struct iw_point *erq, char *extra) { @@ -1925,7 +1925,7 @@ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra; struct ieee80211req_key kr; ieee80211_keyix_t kix; -@@ -5949,7 +5949,7 @@ static struct iw_handler_def ieee80211_i +@@ -5957,7 +5957,7 @@ static struct iw_handler_def ieee80211_i static int ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { diff --git a/package/madwifi/patches/432-netdev_ops.patch b/package/madwifi/patches/432-netdev_ops.patch index cc8e9c6664..372000fc8e 100644 --- a/package/madwifi/patches/432-netdev_ops.patch +++ b/package/madwifi/patches/432-netdev_ops.patch @@ -141,7 +141,7 @@ http://madwifi-project.org/changeset/4005 case NETDEV_CHANGENAME: --- a/net80211/ieee80211_var.h +++ b/net80211/ieee80211_var.h -@@ -740,6 +740,7 @@ void ieee80211_build_sc_ie(struct ieee80 +@@ -739,6 +739,7 @@ void ieee80211_build_sc_ie(struct ieee80 void ieee80211_dfs_action(struct ieee80211com *); void ieee80211_expire_channel_excl_restrictions(struct ieee80211com *); void ieee80211_setpuregbasicrates(struct ieee80211_rateset *rs); @@ -151,7 +151,7 @@ http://madwifi-project.org/changeset/4005 * Iterate through ic_channels to enumerate all distinct ic_ieee channel numbers. --- a/net80211/ieee80211_wireless.c +++ b/net80211/ieee80211_wireless.c -@@ -5946,7 +5946,7 @@ static struct iw_handler_def ieee80211_i +@@ -5954,7 +5954,7 @@ static struct iw_handler_def ieee80211_i /* * Handle private ioctl requests. */ @@ -160,7 +160,7 @@ http://madwifi-project.org/changeset/4005 ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { struct ieee80211vap *vap = netdev_priv(dev); -@@ -6036,7 +6036,6 @@ ieee80211_ioctl_vattach(struct ieee80211 +@@ -6044,7 +6044,6 @@ ieee80211_ioctl_vattach(struct ieee80211 { struct net_device *dev = vap->iv_dev; diff --git a/package/madwifi/patches/446-single_module.patch b/package/madwifi/patches/446-single_module.patch index 8708d3a74f..ed02ae8f5e 100644 --- a/package/madwifi/patches/446-single_module.patch +++ b/package/madwifi/patches/446-single_module.patch @@ -541,7 +541,7 @@ /* NB: * - Atheros chips use 6 bits when power is specified in whole dBm units, with -@@ -741,6 +742,8 @@ void ieee80211_dfs_action(struct ieee802 +@@ -740,6 +741,8 @@ void ieee80211_dfs_action(struct ieee802 void ieee80211_expire_channel_excl_restrictions(struct ieee80211com *); void ieee80211_setpuregbasicrates(struct ieee80211_rateset *rs); int ieee80211_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);