Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all low hanging fruits as MPSAFE. Reviewed by: markj Approved by: kib (mentor, blanket) Differential Revision: https://reviews.freebsd.org/D23626
This commit is contained in:
parent
10b49b2302
commit
08f5e6bb81
@ -93,8 +93,9 @@ extern void DO_HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...);
|
||||
#endif /* AH_DEBUG */
|
||||
|
||||
/* NB: put this here instead of the driver to avoid circular references */
|
||||
SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD, 0, "Atheros driver parameters");
|
||||
static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD, 0,
|
||||
SYSCTL_NODE(_hw, OID_AUTO, ath, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
"Atheros driver parameters");
|
||||
static SYSCTL_NODE(_hw_ath, OID_AUTO, hal, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
"Atheros HAL parameters");
|
||||
|
||||
#ifdef AH_DEBUG
|
||||
@ -236,8 +237,10 @@ sysctl_hw_ath_hal_log(SYSCTL_HANDLER_ARGS)
|
||||
else
|
||||
return (ath_hal_setlogging(enable));
|
||||
}
|
||||
SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq, CTLTYPE_INT|CTLFLAG_RW,
|
||||
0, 0, sysctl_hw_ath_hal_log, "I", "Enable HAL register logging");
|
||||
SYSCTL_PROC(_hw_ath_hal, OID_AUTO, alq,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
0, 0, sysctl_hw_ath_hal_log, "I",
|
||||
"Enable HAL register logging");
|
||||
SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_size, CTLFLAG_RW,
|
||||
&ath_hal_alq_qsize, 0, "In-memory log size (#records)");
|
||||
SYSCTL_INT(_hw_ath_hal, OID_AUTO, alq_lost, CTLFLAG_RW,
|
||||
|
@ -1364,17 +1364,17 @@ ath_rate_sysctlattach(struct ath_softc *sc, struct sample_softc *ssc)
|
||||
struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev);
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"smoothing_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0,
|
||||
ath_rate_sysctl_smoothing_rate, "I",
|
||||
"smoothing_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
ssc, 0, ath_rate_sysctl_smoothing_rate, "I",
|
||||
"sample: smoothing rate for avg tx time (%%)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"sample_rate", CTLTYPE_INT | CTLFLAG_RW, ssc, 0,
|
||||
ath_rate_sysctl_sample_rate, "I",
|
||||
"sample_rate", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
ssc, 0, ath_rate_sysctl_sample_rate, "I",
|
||||
"sample: percent air time devoted to sampling new rates (%%)");
|
||||
/* XXX max_successive_failures, stale_failure_timeout, min_switch */
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"sample_stats", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_rate_sysctl_stats, "I", "sample: print statistics");
|
||||
"sample_stats", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
sc, 0, ath_rate_sysctl_stats, "I", "sample: print statistics");
|
||||
}
|
||||
|
||||
struct ath_ratectrl *
|
||||
|
@ -786,16 +786,17 @@ ath_sysctl_alq_attach(struct ath_softc *sc)
|
||||
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev);
|
||||
struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree);
|
||||
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq", CTLFLAG_RD,
|
||||
NULL, "Atheros ALQ logging parameters");
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "alq",
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL,
|
||||
"Atheros ALQ logging parameters");
|
||||
child = SYSCTL_CHILDREN(tree);
|
||||
|
||||
SYSCTL_ADD_STRING(ctx, child, OID_AUTO, "filename",
|
||||
CTLFLAG_RW, sc->sc_alq.sc_alq_filename, 0, "ALQ filename");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"enable", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_alq_log, "I", "");
|
||||
"enable", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_alq_log, "I", "");
|
||||
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"debugmask", CTLFLAG_RW, &sc->sc_alq.sc_alq_debug, 0,
|
||||
@ -831,21 +832,21 @@ ath_sysctlattach(struct ath_softc *sc)
|
||||
"control debugging KTR");
|
||||
#endif /* ATH_DEBUG_ALQ */
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"slottime", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_slottime, "I", "802.11 slot time (us)");
|
||||
"slottime", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_slottime, "I", "802.11 slot time (us)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"acktimeout", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_acktimeout, "I", "802.11 ACK timeout (us)");
|
||||
"acktimeout", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_acktimeout, "I", "802.11 ACK timeout (us)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"ctstimeout", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_ctstimeout, "I", "802.11 CTS timeout (us)");
|
||||
"ctstimeout", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_ctstimeout, "I", "802.11 CTS timeout (us)");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"softled", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_softled, "I", "enable/disable software LED support");
|
||||
"softled", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_softled, "I", "enable/disable software LED support");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"ledpin", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_ledpin, "I", "GPIO pin connected to LED");
|
||||
"ledpin", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_ledpin, "I", "GPIO pin connected to LED");
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"ledon", CTLFLAG_RW, &sc->sc_ledon, 0,
|
||||
"setting to turn LED on");
|
||||
@ -854,8 +855,8 @@ ath_sysctlattach(struct ath_softc *sc)
|
||||
"idle time for inactivity LED (ticks)");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"hardled", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_hardled, "I", "enable/disable hardware LED support");
|
||||
"hardled", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_hardled, "I", "enable/disable hardware LED support");
|
||||
/* XXX Laziness - configure pins, then flip hardled off/on */
|
||||
SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"led_net_pin", CTLFLAG_RW, &sc->sc_led_net_pin, 0,
|
||||
@ -865,61 +866,61 @@ ath_sysctlattach(struct ath_softc *sc)
|
||||
"MAC Power LED pin, or -1 to disable");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"txantenna", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_txantenna, "I", "antenna switch");
|
||||
"txantenna", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_txantenna, "I", "antenna switch");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"rxantenna", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_rxantenna, "I", "default/rx antenna");
|
||||
"rxantenna", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_rxantenna, "I", "default/rx antenna");
|
||||
if (ath_hal_hasdiversity(ah))
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"diversity", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_diversity, "I", "antenna diversity");
|
||||
"diversity", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
sc, 0, ath_sysctl_diversity, "I", "antenna diversity");
|
||||
sc->sc_txintrperiod = ATH_TXINTR_PERIOD;
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"txintrperiod", CTLFLAG_RW, &sc->sc_txintrperiod, 0,
|
||||
"tx descriptor batching");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"diag", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_diag, "I", "h/w diagnostic control");
|
||||
"diag", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_diag, "I", "h/w diagnostic control");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"tpscale", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_tpscale, "I", "tx power scaling");
|
||||
"tpscale", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_tpscale, "I", "tx power scaling");
|
||||
if (ath_hal_hastpc(ah)) {
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"tpc", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_tpc, "I", "enable/disable per-packet TPC");
|
||||
"tpc", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_tpc, "I", "enable/disable per-packet TPC");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"tpack", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_tpack, "I", "tx power for ack frames");
|
||||
"tpack", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_tpack, "I", "tx power for ack frames");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"tpcts", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_tpcts, "I", "tx power for cts frames");
|
||||
"tpcts", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_tpcts, "I", "tx power for cts frames");
|
||||
}
|
||||
if (ath_hal_hasrfsilent(ah)) {
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"rfsilent", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_rfsilent, "I", "h/w RF silent config");
|
||||
"rfsilent", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
sc, 0, ath_sysctl_rfsilent, "I", "h/w RF silent config");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"rfkill", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_rfkill, "I", "enable/disable RF kill switch");
|
||||
"rfkill", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_rfkill, "I", "enable/disable RF kill switch");
|
||||
}
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"txagg", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_txagg, "I", "");
|
||||
"txagg", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_txagg, "I", "");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"forcebstuck", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_forcebstuck, "I", "");
|
||||
"forcebstuck", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_forcebstuck, "I", "");
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"hangcheck", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_hangcheck, "I", "");
|
||||
"hangcheck", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
|
||||
ath_sysctl_hangcheck, "I", "");
|
||||
|
||||
if (ath_hal_hasintmit(ah)) {
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"intmit", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_intmit, "I", "interference mitigation");
|
||||
"intmit", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_intmit, "I", "interference mitigation");
|
||||
}
|
||||
sc->sc_monpass = HAL_RXERR_DECRYPT | HAL_RXERR_MIC;
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
@ -989,8 +990,8 @@ ath_sysctlattach(struct ath_softc *sc)
|
||||
"superframe", CTLFLAG_RD, &sc->sc_tdmabintval, 0,
|
||||
"TDMA calculated super frame");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"setcca", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_setcca, "I", "enable CCA control");
|
||||
"setcca", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
sc, 0, ath_sysctl_setcca, "I", "enable CCA control");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1028,7 +1029,8 @@ ath_sysctl_stats_attach_rxphyerr(struct ath_softc *sc, struct sysctl_oid_list *p
|
||||
int i;
|
||||
char sn[8];
|
||||
|
||||
tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx_phy_err", CTLFLAG_RD, NULL, "Per-code RX PHY Errors");
|
||||
tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx_phy_err",
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Per-code RX PHY Errors");
|
||||
child = SYSCTL_CHILDREN(tree);
|
||||
for (i = 0; i < 64; i++) {
|
||||
snprintf(sn, sizeof(sn), "%d", i);
|
||||
@ -1047,7 +1049,7 @@ ath_sysctl_stats_attach_intr(struct ath_softc *sc,
|
||||
char sn[8];
|
||||
|
||||
tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "sync_intr",
|
||||
CTLFLAG_RD, NULL, "Sync interrupt statistics");
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Sync interrupt statistics");
|
||||
child = SYSCTL_CHILDREN(tree);
|
||||
for (i = 0; i < 32; i++) {
|
||||
snprintf(sn, sizeof(sn), "%d", i);
|
||||
@ -1065,12 +1067,12 @@ ath_sysctl_stats_attach(struct ath_softc *sc)
|
||||
|
||||
/* Create "clear" node */
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"clear_stats", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
|
||||
ath_sysctl_clearstats, "I", "clear stats");
|
||||
"clear_stats", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
|
||||
0, ath_sysctl_clearstats, "I", "clear stats");
|
||||
|
||||
/* Create stats node */
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD,
|
||||
NULL, "Statistics");
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats",
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Statistics");
|
||||
child = SYSCTL_CHILDREN(tree);
|
||||
|
||||
/* This was generated from if_athioctl.h */
|
||||
@ -1315,8 +1317,8 @@ ath_sysctl_hal_attach(struct ath_softc *sc)
|
||||
struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->sc_dev);
|
||||
struct sysctl_oid_list *child = SYSCTL_CHILDREN(tree);
|
||||
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "hal", CTLFLAG_RD,
|
||||
NULL, "Atheros HAL parameters");
|
||||
tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "hal",
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Atheros HAL parameters");
|
||||
child = SYSCTL_CHILDREN(tree);
|
||||
|
||||
sc->sc_ah->ah_config.ah_debug = 0;
|
||||
|
@ -75,7 +75,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include "if_otusreg.h"
|
||||
|
||||
static int otus_debug = 0;
|
||||
static SYSCTL_NODE(_hw_usb, OID_AUTO, otus, CTLFLAG_RW, 0, "USB otus");
|
||||
static SYSCTL_NODE(_hw_usb, OID_AUTO, otus, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"USB otus");
|
||||
SYSCTL_INT(_hw_usb_otus, OID_AUTO, debug, CTLFLAG_RWTUN, &otus_debug, 0,
|
||||
"Debug level");
|
||||
#define OTUS_DEBUG_XMIT 0x00000001
|
||||
|
@ -111,8 +111,10 @@ sysctl_ieee80211_alq_log(SYSCTL_HANDLER_ARGS)
|
||||
return (ieee80211_alq_setlogging(enable));
|
||||
}
|
||||
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, alq, CTLTYPE_INT|CTLFLAG_RW,
|
||||
0, 0, sysctl_ieee80211_alq_log, "I", "Enable net80211 alq logging");
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, alq,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, 0, 0,
|
||||
sysctl_ieee80211_alq_log, "I",
|
||||
"Enable net80211 alq logging");
|
||||
SYSCTL_INT(_net_wlan, OID_AUTO, alq_size, CTLFLAG_RW,
|
||||
&ieee80211_alq_qsize, 0, "In-memory log size (bytes)");
|
||||
SYSCTL_INT(_net_wlan, OID_AUTO, alq_lost, CTLFLAG_RW,
|
||||
|
@ -465,8 +465,8 @@ amrr_sysctlattach(struct ieee80211vap *vap,
|
||||
return;
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"amrr_rate_interval", CTLTYPE_INT | CTLFLAG_RW, vap,
|
||||
0, amrr_sysctl_interval, "I", "amrr operation interval (ms)");
|
||||
"amrr_rate_interval", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
vap, 0, amrr_sysctl_interval, "I", "amrr operation interval (ms)");
|
||||
/* XXX bounds check values */
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"amrr_max_sucess_threshold", CTLFLAG_RW,
|
||||
|
@ -60,7 +60,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include <net80211/ieee80211_var.h>
|
||||
#include <net80211/ieee80211_input.h>
|
||||
|
||||
SYSCTL_NODE(_net, OID_AUTO, wlan, CTLFLAG_RD, 0, "IEEE 80211 parameters");
|
||||
SYSCTL_NODE(_net, OID_AUTO, wlan, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
"IEEE 80211 parameters");
|
||||
|
||||
#ifdef IEEE80211_DEBUG
|
||||
static int ieee80211_debug = 0;
|
||||
@ -227,10 +228,10 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap)
|
||||
sysctl_ctx_init(ctx);
|
||||
snprintf(num, sizeof(num), "%u", ifp->if_dunit);
|
||||
oid = SYSCTL_ADD_NODE(ctx, &SYSCTL_NODE_CHILDREN(_net, wlan),
|
||||
OID_AUTO, num, CTLFLAG_RD, NULL, "");
|
||||
OID_AUTO, num, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"%parent", CTLTYPE_STRING | CTLFLAG_RD, vap->iv_ic, 0,
|
||||
ieee80211_sysctl_parent, "A", "parent device");
|
||||
"%parent", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
|
||||
vap->iv_ic, 0, ieee80211_sysctl_parent, "A", "parent device");
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"driver_caps", CTLFLAG_RW, &vap->iv_caps, 0,
|
||||
"driver capabilities");
|
||||
@ -245,21 +246,21 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap)
|
||||
"consecutive beacon misses before scanning");
|
||||
/* XXX inherit from tunables */
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"inact_run", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_run, 0,
|
||||
ieee80211_sysctl_inact, "I",
|
||||
"station inactivity timeout (sec)");
|
||||
"inact_run", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&vap->iv_inact_run, 0, ieee80211_sysctl_inact, "I",
|
||||
"station inactivity timeout (sec)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"inact_probe", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_probe, 0,
|
||||
ieee80211_sysctl_inact, "I",
|
||||
"station inactivity probe timeout (sec)");
|
||||
"inact_probe", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&vap->iv_inact_probe, 0, ieee80211_sysctl_inact, "I",
|
||||
"station inactivity probe timeout (sec)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"inact_auth", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_auth, 0,
|
||||
ieee80211_sysctl_inact, "I",
|
||||
"station authentication timeout (sec)");
|
||||
"inact_auth", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&vap->iv_inact_auth, 0, ieee80211_sysctl_inact, "I",
|
||||
"station authentication timeout (sec)");
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"inact_init", CTLTYPE_INT | CTLFLAG_RW, &vap->iv_inact_init, 0,
|
||||
ieee80211_sysctl_inact, "I",
|
||||
"station initial state timeout (sec)");
|
||||
"inact_init", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&vap->iv_inact_init, 0, ieee80211_sysctl_inact, "I",
|
||||
"station initial state timeout (sec)");
|
||||
if (vap->iv_htcaps & IEEE80211_HTC_HT) {
|
||||
SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"ampdu_mintraffic_bk", CTLFLAG_RW,
|
||||
@ -280,14 +281,14 @@ ieee80211_sysctl_vattach(struct ieee80211vap *vap)
|
||||
}
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"force_restart", CTLTYPE_INT | CTLFLAG_RW, vap, 0,
|
||||
ieee80211_sysctl_vap_restart, "I",
|
||||
"force a VAP restart");
|
||||
"force_restart", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
vap, 0, ieee80211_sysctl_vap_restart, "I", "force a VAP restart");
|
||||
|
||||
if (vap->iv_caps & IEEE80211_C_DFS) {
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
|
||||
"radar", CTLTYPE_INT | CTLFLAG_RW, vap->iv_ic, 0,
|
||||
ieee80211_sysctl_radar, "I", "simulate radar event");
|
||||
"radar", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
vap->iv_ic, 0, ieee80211_sysctl_radar, "I",
|
||||
"simulate radar event");
|
||||
}
|
||||
vap->iv_sysctl = ctx;
|
||||
vap->iv_oid = oid;
|
||||
|
@ -139,22 +139,25 @@ const struct ieee80211_mcs_rates ieee80211_htrates[IEEE80211_HTRATE_MAXSIZE] = {
|
||||
};
|
||||
|
||||
static int ieee80211_ampdu_age = -1; /* threshold for ampdu reorder q (ms) */
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, ampdu_age, CTLTYPE_INT | CTLFLAG_RW,
|
||||
&ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"AMPDU max reorder age (ms)");
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, ampdu_age,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"AMPDU max reorder age (ms)");
|
||||
|
||||
static int ieee80211_recv_bar_ena = 1;
|
||||
SYSCTL_INT(_net_wlan, OID_AUTO, recv_bar, CTLFLAG_RW, &ieee80211_recv_bar_ena,
|
||||
0, "BAR frame processing (ena/dis)");
|
||||
|
||||
static int ieee80211_addba_timeout = -1;/* timeout for ADDBA response */
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, addba_timeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
&ieee80211_addba_timeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"ADDBA request timeout (ms)");
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, addba_timeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_addba_timeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"ADDBA request timeout (ms)");
|
||||
static int ieee80211_addba_backoff = -1;/* backoff after max ADDBA requests */
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, addba_backoff, CTLTYPE_INT | CTLFLAG_RW,
|
||||
&ieee80211_addba_backoff, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"ADDBA request backoff (ms)");
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, addba_backoff,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_addba_backoff, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"ADDBA request backoff (ms)");
|
||||
static int ieee80211_addba_maxtries = 3;/* max ADDBA requests before backoff */
|
||||
SYSCTL_INT(_net_wlan, OID_AUTO, addba_maxtries, CTLFLAG_RW,
|
||||
&ieee80211_addba_maxtries, 0, "max ADDBA requests sent before backoff");
|
||||
|
@ -154,39 +154,46 @@ struct ieee80211_hwmp_state {
|
||||
uint8_t hs_maxhops; /* max hop count */
|
||||
};
|
||||
|
||||
static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0,
|
||||
static SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
"IEEE 802.11s HWMP parameters");
|
||||
static int ieee80211_hwmp_targetonly = 0;
|
||||
SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, targetonly, CTLFLAG_RW,
|
||||
&ieee80211_hwmp_targetonly, 0, "Set TO bit on generated PREQs");
|
||||
static int ieee80211_hwmp_pathtimeout = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, pathlifetime,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_pathtimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"path entry lifetime (ms)");
|
||||
static int ieee80211_hwmp_maxpreq_retries = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, maxpreq_retries,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_maxpreq_retries, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"maximum number of preq retries");
|
||||
static int ieee80211_hwmp_net_diameter_traversaltime = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, net_diameter_traversal_time,
|
||||
CTLTYPE_INT | CTLFLAG_RW, &ieee80211_hwmp_net_diameter_traversaltime, 0,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_net_diameter_traversaltime, 0,
|
||||
ieee80211_sysctl_msecs_ticks, "I",
|
||||
"estimate travelse time across the MBSS (ms)");
|
||||
static int ieee80211_hwmp_roottimeout = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_roottimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"root PREQ timeout (ms)");
|
||||
static int ieee80211_hwmp_rootint = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootint,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_rootint, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"root interval (ms)");
|
||||
static int ieee80211_hwmp_rannint = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rannint,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_rannint, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"root announcement interval (ms)");
|
||||
static struct timeval ieee80211_hwmp_rootconfint = { 0, 0 };
|
||||
static int ieee80211_hwmp_rootconfint_internal = -1;
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint, CTLTYPE_INT | CTLFLAG_RD,
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, rootconfint,
|
||||
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE,
|
||||
&ieee80211_hwmp_rootconfint_internal, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"root confirmation interval (ms) (read-only)");
|
||||
|
||||
@ -205,9 +212,10 @@ static struct ieee80211_mesh_proto_path mesh_proto_hwmp = {
|
||||
.mpp_newstate = hwmp_newstate,
|
||||
.mpp_privlen = sizeof(struct ieee80211_hwmp_route),
|
||||
};
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact, CTLTYPE_INT | CTLFLAG_RW,
|
||||
&mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"mesh route inactivity timeout (ms)");
|
||||
SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, inact,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&mesh_proto_hwmp.mpp_inact, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"mesh route inactivity timeout (ms)");
|
||||
|
||||
|
||||
static void
|
||||
|
@ -106,27 +106,32 @@ uint32_t mesh_airtime_calc(struct ieee80211_node *);
|
||||
/*
|
||||
* Timeout values come from the specification and are in milliseconds.
|
||||
*/
|
||||
static SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0,
|
||||
static SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
|
||||
"IEEE 802.11s parameters");
|
||||
static int ieee80211_mesh_gateint = -1;
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, gateint, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, gateint,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_mesh_gateint, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"mesh gate interval (ms)");
|
||||
static int ieee80211_mesh_retrytimeout = -1;
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, retrytimeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, retrytimeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_mesh_retrytimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"Retry timeout (msec)");
|
||||
static int ieee80211_mesh_holdingtimeout = -1;
|
||||
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, holdingtimeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, holdingtimeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_mesh_holdingtimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"Holding state timeout (msec)");
|
||||
static int ieee80211_mesh_confirmtimeout = -1;
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, confirmtimeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, confirmtimeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_mesh_confirmtimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"Confirm state timeout (msec)");
|
||||
static int ieee80211_mesh_backofftimeout = -1;
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, backofftimeout, CTLTYPE_INT | CTLFLAG_RW,
|
||||
SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, backofftimeout,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_mesh_backofftimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"Backoff timeout (msec). This is to throutles peering forever when "
|
||||
"not receiving answer or is rejected by a neighbor");
|
||||
|
@ -381,6 +381,7 @@ rssadapt_sysctlattach(struct ieee80211vap *vap,
|
||||
{
|
||||
|
||||
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
|
||||
"rssadapt_rate_interval", CTLTYPE_INT | CTLFLAG_RW, vap,
|
||||
0, rssadapt_sysctl_interval, "I", "rssadapt operation interval (ms)");
|
||||
"rssadapt_rate_interval",
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vap, 0,
|
||||
rssadapt_sysctl_interval, "I", "rssadapt operation interval (ms)");
|
||||
}
|
||||
|
@ -92,9 +92,10 @@ static int ieee80211_ffppsmin = 2; /* pps threshold for ff aggregation */
|
||||
SYSCTL_INT(_net_wlan, OID_AUTO, ffppsmin, CTLFLAG_RW,
|
||||
&ieee80211_ffppsmin, 0, "min packet rate before fast-frame staging");
|
||||
static int ieee80211_ffagemax = -1; /* max time frames held on stage q */
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, ffagemax, CTLTYPE_INT | CTLFLAG_RW,
|
||||
&ieee80211_ffagemax, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"max hold time for fast-frame staging (ms)");
|
||||
SYSCTL_PROC(_net_wlan, OID_AUTO, ffagemax,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
|
||||
&ieee80211_ffagemax, 0, ieee80211_sysctl_msecs_ticks, "I",
|
||||
"max hold time for fast-frame staging (ms)");
|
||||
|
||||
static void
|
||||
ff_age_all(void *arg, int npending)
|
||||
|
Loading…
x
Reference in New Issue
Block a user