diff options
Diffstat (limited to 'sys/dev/acpica')
| -rw-r--r-- | sys/dev/acpica/acpi.c | 42 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_acad.c | 6 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_battery.c | 14 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_cpu.c | 35 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_dock.c | 2 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_ec.c | 4 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_smbat.c | 3 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_thermal.c | 72 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_timer.c | 6 | ||||
| -rw-r--r-- | sys/dev/acpica/acpi_video.c | 25 |
10 files changed, 111 insertions, 98 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index 1e3d9b7c13ad..686b41b9b3f7 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -251,7 +251,8 @@ static struct rman acpi_rman_io, acpi_rman_mem; /* Holds the description of the acpi0 device. */ static char acpi_desc[ACPI_OEM_ID_SIZE + ACPI_OEM_TABLE_ID_SIZE + 2]; -SYSCTL_NODE(_debug, OID_AUTO, acpi, CTLFLAG_RD, NULL, "ACPI debugging"); +SYSCTL_NODE(_debug, OID_AUTO, acpi, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "ACPI debugging"); static char acpi_ca_version[12]; SYSCTL_STRING(_debug_acpi, OID_AUTO, acpi_ca_version, CTLFLAG_RD, acpi_ca_version, 0, "Version of Intel ACPI-CA"); @@ -270,7 +271,8 @@ TUNABLE_STR("hw.acpi.remove_interface", acpi_remove_interface, static int acpi_debug_objects; TUNABLE_INT("debug.acpi.enable_debug_objects", &acpi_debug_objects); SYSCTL_PROC(_debug_acpi, OID_AUTO, enable_debug_objects, - CTLFLAG_RW | CTLTYPE_INT, NULL, 0, acpi_debug_objects_sysctl, "I", + CTLFLAG_RW | CTLTYPE_INT | CTLFLAG_NEEDGIANT, NULL, 0, + acpi_debug_objects_sysctl, "I", "Enable Debug objects"); /* Allow the interpreter to ignore common mistakes in BIOS. */ @@ -551,29 +553,35 @@ acpi_attach(device_t dev) */ sysctl_ctx_init(&sc->acpi_sysctl_ctx); sc->acpi_sysctl_tree = SYSCTL_ADD_NODE(&sc->acpi_sysctl_ctx, - SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, - device_get_name(dev), CTLFLAG_RD, 0, ""); + SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, device_get_name(dev), + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "supported_sleep_state", CTLTYPE_STRING | CTLFLAG_RD, + OID_AUTO, "supported_sleep_state", + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, 0, 0, acpi_supported_sleep_state_sysctl, "A", "List supported ACPI sleep states."); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "power_button_state", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "power_button_state", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sc->acpi_power_button_sx, 0, acpi_sleep_state_sysctl, "A", "Power button ACPI sleep state."); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "sleep_button_state", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "sleep_button_state", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sc->acpi_sleep_button_sx, 0, acpi_sleep_state_sysctl, "A", "Sleep button ACPI sleep state."); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "lid_switch_state", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "lid_switch_state", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sc->acpi_lid_switch_sx, 0, acpi_sleep_state_sysctl, "A", "Lid ACPI sleep state. Set to S3 if you want to suspend your laptop when close the Lid."); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "standby_state", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "standby_state", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sc->acpi_standby_sx, 0, acpi_sleep_state_sysctl, "A", ""); SYSCTL_ADD_PROC(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), - OID_AUTO, "suspend_state", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "suspend_state", + CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, &sc->acpi_suspend_sx, 0, acpi_sleep_state_sysctl, "A", ""); SYSCTL_ADD_INT(&sc->acpi_sysctl_ctx, SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "sleep_delay", CTLFLAG_RW, &sc->acpi_sleep_delay, 0, @@ -3353,7 +3361,7 @@ acpi_wake_sysctl_walk(device_t dev) if (ACPI_SUCCESS(status)) { SYSCTL_ADD_PROC(device_get_sysctl_ctx(child), SYSCTL_CHILDREN(device_get_sysctl_tree(child)), OID_AUTO, - "wake", CTLTYPE_INT | CTLFLAG_RW, child, 0, + "wake", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, child, 0, acpi_wake_set_sysctl, "I", "Device set to wake the system"); } } @@ -4126,10 +4134,14 @@ acpi_debug_sysctl(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_debug_acpi, OID_AUTO, layer, CTLFLAG_RW | CTLTYPE_STRING, - "debug.acpi.layer", 0, acpi_debug_sysctl, "A", ""); -SYSCTL_PROC(_debug_acpi, OID_AUTO, level, CTLFLAG_RW | CTLTYPE_STRING, - "debug.acpi.level", 0, acpi_debug_sysctl, "A", ""); +SYSCTL_PROC(_debug_acpi, OID_AUTO, layer, + CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT, "debug.acpi.layer", 0, + acpi_debug_sysctl, "A", + ""); +SYSCTL_PROC(_debug_acpi, OID_AUTO, level, + CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT, "debug.acpi.level", 0, + acpi_debug_sysctl, "A", + ""); #endif /* ACPI_DEBUG */ static int diff --git a/sys/dev/acpica/acpi_acad.c b/sys/dev/acpica/acpi_acad.c index 18a36013809f..52cfcc50d9aa 100644 --- a/sys/dev/acpica/acpi_acad.c +++ b/sys/dev/acpica/acpi_acad.c @@ -170,9 +170,9 @@ acpi_acad_attach(device_t dev) if (device_get_unit(dev) == 0) { acpi_sc = acpi_device_get_parent_softc(dev); SYSCTL_ADD_PROC(&acpi_sc->acpi_sysctl_ctx, - SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), - OID_AUTO, "acline", CTLTYPE_INT | CTLFLAG_RD, - &sc->status, 0, acpi_acad_sysctl, "I", ""); + SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, "acline", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &sc->status, 0, + acpi_acad_sysctl, "I", ""); } /* Get initial status after whole system is up. */ diff --git a/sys/dev/acpica/acpi_battery.c b/sys/dev/acpica/acpi_battery.c index eaf7dd0bf3e4..ea4a5e3baeee 100644 --- a/sys/dev/acpica/acpi_battery.c +++ b/sys/dev/acpica/acpi_battery.c @@ -490,31 +490,31 @@ acpi_battery_init(void) sysctl_ctx_init(&acpi_battery_sysctl_ctx); acpi_battery_sysctl_tree = SYSCTL_ADD_NODE(&acpi_battery_sysctl_ctx, - SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "battery", CTLFLAG_RD, - 0, "battery status and info"); + SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, "battery", + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "battery status and info"); SYSCTL_ADD_PROC(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), - OID_AUTO, "life", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "life", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &acpi_battery_battinfo.cap, 0, acpi_battery_sysctl, "I", "percent capacity remaining"); SYSCTL_ADD_PROC(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), - OID_AUTO, "time", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "time", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &acpi_battery_battinfo.min, 0, acpi_battery_sysctl, "I", "remaining time in minutes"); SYSCTL_ADD_PROC(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), - OID_AUTO, "rate", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "rate", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &acpi_battery_battinfo.rate, 0, acpi_battery_sysctl, "I", "present rate in mW"); SYSCTL_ADD_PROC(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), - OID_AUTO, "state", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "state", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, &acpi_battery_battinfo.state, 0, acpi_battery_sysctl, "I", "current status flags"); SYSCTL_ADD_PROC(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), - OID_AUTO, "units", CTLTYPE_INT | CTLFLAG_RD, + OID_AUTO, "units", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, NULL, 0, acpi_battery_units_sysctl, "I", "number of batteries"); SYSCTL_ADD_INT(&acpi_battery_sysctl_ctx, SYSCTL_CHILDREN(acpi_battery_sysctl_tree), diff --git a/sys/dev/acpica/acpi_cpu.c b/sys/dev/acpica/acpi_cpu.c index 46972630d585..e5d02cca974a 100644 --- a/sys/dev/acpica/acpi_cpu.c +++ b/sys/dev/acpica/acpi_cpu.c @@ -391,7 +391,7 @@ acpi_cpu_attach(device_t dev) sysctl_ctx_init(&cpu_sysctl_ctx); cpu_sysctl_tree = SYSCTL_ADD_NODE(&cpu_sysctl_ctx, SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, "cpu", - CTLFLAG_RD, 0, "node for CPU children"); + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "node for CPU children"); } /* @@ -1023,7 +1023,7 @@ acpi_cpu_startup(void *arg) /* Add a sysctl handler to handle global Cx lowest setting */ SYSCTL_ADD_PROC(&cpu_sysctl_ctx, SYSCTL_CHILDREN(cpu_sysctl_tree), - OID_AUTO, "cx_lowest", CTLTYPE_STRING | CTLFLAG_RW, + OID_AUTO, "cx_lowest", CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, NULL, 0, acpi_cpu_global_cx_lowest_sysctl, "A", "Global lowest Cx sleep state to use"); @@ -1067,26 +1067,25 @@ acpi_cpu_startup_cx(struct acpi_cpu_softc *sc) sc->cpu_cx_supported, 0, "Cx/microsecond values for supported Cx states"); SYSCTL_ADD_PROC(&sc->cpu_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), - OID_AUTO, "cx_lowest", CTLTYPE_STRING | CTLFLAG_RW, - (void *)sc, 0, acpi_cpu_cx_lowest_sysctl, "A", - "lowest Cx sleep state to use"); + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), OID_AUTO, + "cx_lowest", CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, + (void *)sc, 0, acpi_cpu_cx_lowest_sysctl, "A", + "lowest Cx sleep state to use"); SYSCTL_ADD_PROC(&sc->cpu_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), - OID_AUTO, "cx_usage", CTLTYPE_STRING | CTLFLAG_RD, - (void *)sc, 0, acpi_cpu_usage_sysctl, "A", - "percent usage for each Cx state"); + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), OID_AUTO, + "cx_usage", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + (void *)sc, 0, acpi_cpu_usage_sysctl, "A", + "percent usage for each Cx state"); SYSCTL_ADD_PROC(&sc->cpu_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), - OID_AUTO, "cx_usage_counters", CTLTYPE_STRING | CTLFLAG_RD, - (void *)sc, 0, acpi_cpu_usage_counters_sysctl, "A", - "Cx sleep state counters"); + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), OID_AUTO, + "cx_usage_counters", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + (void *)sc, 0, acpi_cpu_usage_counters_sysctl, "A", + "Cx sleep state counters"); #if defined(__i386__) || defined(__amd64__) SYSCTL_ADD_PROC(&sc->cpu_sysctl_ctx, - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), - OID_AUTO, "cx_method", CTLTYPE_STRING | CTLFLAG_RD, - (void *)sc, 0, acpi_cpu_method_sysctl, "A", - "Cx entrance methods"); + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->cpu_dev)), OID_AUTO, + "cx_method", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + (void *)sc, 0, acpi_cpu_method_sysctl, "A", "Cx entrance methods"); #endif /* Signal platform that we can handle _CST notification. */ diff --git a/sys/dev/acpica/acpi_dock.c b/sys/dev/acpica/acpi_dock.c index 00b2e9fc375f..e566a86307b0 100644 --- a/sys/dev/acpica/acpi_dock.c +++ b/sys/dev/acpica/acpi_dock.c @@ -515,7 +515,7 @@ acpi_dock_attach(device_t dev) SYSCTL_ADD_PROC(sc->sysctl_ctx, SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, "status", - CTLTYPE_INT|CTLFLAG_RW, dev, 0, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, dev, 0, acpi_dock_status_sysctl, "I", "Dock/Undock operation"); diff --git a/sys/dev/acpica/acpi_ec.c b/sys/dev/acpica/acpi_ec.c index 2457a5ab68c9..d6211d5881f2 100644 --- a/sys/dev/acpica/acpi_ec.c +++ b/sys/dev/acpica/acpi_ec.c @@ -179,7 +179,9 @@ struct acpi_ec_softc { ACPI_SERIAL_DECL(ec, "ACPI embedded controller"); -static SYSCTL_NODE(_debug_acpi, OID_AUTO, ec, CTLFLAG_RD, NULL, "EC debugging"); +static SYSCTL_NODE(_debug_acpi, OID_AUTO, ec, + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "EC debugging"); static int ec_burst_mode; SYSCTL_INT(_debug_acpi_ec, OID_AUTO, burst, CTLFLAG_RWTUN, &ec_burst_mode, 0, diff --git a/sys/dev/acpica/acpi_smbat.c b/sys/dev/acpica/acpi_smbat.c index 28efb9015da5..65995ac77eec 100644 --- a/sys/dev/acpica/acpi_smbat.c +++ b/sys/dev/acpica/acpi_smbat.c @@ -62,7 +62,8 @@ static int acpi_smbat_get_bst(device_t dev, struct acpi_bst *bst); ACPI_SERIAL_DECL(smbat, "ACPI Smart Battery"); -static SYSCTL_NODE(_debug_acpi, OID_AUTO, batt, CTLFLAG_RD, NULL, +static SYSCTL_NODE(_debug_acpi, OID_AUTO, batt, + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Battery debugging"); /* On some laptops with smart batteries, enabling battery monitoring diff --git a/sys/dev/acpica/acpi_thermal.c b/sys/dev/acpica/acpi_thermal.c index fa731deef42d..73b2de51b382 100644 --- a/sys/dev/acpica/acpi_thermal.c +++ b/sys/dev/acpica/acpi_thermal.c @@ -241,8 +241,8 @@ acpi_tz_attach(device_t dev) acpi_sc = acpi_device_get_parent_softc(dev); sysctl_ctx_init(&acpi_tz_sysctl_ctx); acpi_tz_sysctl_tree = SYSCTL_ADD_NODE(&acpi_tz_sysctl_ctx, - SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), - OID_AUTO, "thermal", CTLFLAG_RD, 0, ""); + SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, "thermal", + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); SYSCTL_ADD_INT(&acpi_tz_sysctl_ctx, SYSCTL_CHILDREN(acpi_tz_sysctl_tree), OID_AUTO, "min_runtime", CTLFLAG_RW, @@ -260,56 +260,52 @@ acpi_tz_attach(device_t dev) sysctl_ctx_init(&sc->tz_sysctl_ctx); sprintf(oidname, "tz%d", device_get_unit(dev)); sc->tz_sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&sc->tz_sysctl_ctx, - SYSCTL_CHILDREN(acpi_tz_sysctl_tree), - OID_AUTO, oidname, CTLFLAG_RD, 0, "", "thermal_zone"); + SYSCTL_CHILDREN(acpi_tz_sysctl_tree), OID_AUTO, oidname, + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "", "thermal_zone"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, - &sc->tz_temperature, 0, sysctl_handle_int, - "IK", "current thermal zone temperature"); + OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + &sc->tz_temperature, 0, sysctl_handle_int, "IK", + "current thermal zone temperature"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "active", CTLTYPE_INT | CTLFLAG_RW, - sc, 0, acpi_tz_active_sysctl, "I", "cooling is active"); + OID_AUTO, "active", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + 0, acpi_tz_active_sysctl, "I", "cooling is active"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "passive_cooling", CTLTYPE_INT | CTLFLAG_RW, - sc, 0, acpi_tz_cooling_sysctl, "I", - "enable passive (speed reduction) cooling"); + OID_AUTO, "passive_cooling", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + acpi_tz_cooling_sysctl, "I", + "enable passive (speed reduction) cooling"); SYSCTL_ADD_INT(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), OID_AUTO, "thermal_flags", CTLFLAG_RD, &sc->tz_thflags, 0, "thermal zone flags"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_PSV", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.psv), - acpi_tz_temp_sysctl, "IK", "passive cooling temp setpoint"); + OID_AUTO, "_PSV", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.psv), acpi_tz_temp_sysctl, "IK", + "passive cooling temp setpoint"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_HOT", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.hot), - acpi_tz_temp_sysctl, "IK", - "too hot temp setpoint (suspend now)"); + OID_AUTO, "_HOT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.hot), acpi_tz_temp_sysctl, "IK", + "too hot temp setpoint (suspend now)"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_CRT", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.crt), - acpi_tz_temp_sysctl, "IK", - "critical temp setpoint (shutdown now)"); + OID_AUTO, "_CRT", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.crt), acpi_tz_temp_sysctl, "IK", + "critical temp setpoint (shutdown now)"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_ACx", CTLTYPE_INT | CTLFLAG_RD, - &sc->tz_zone.ac, sizeof(sc->tz_zone.ac), - sysctl_handle_opaque, "IK", ""); + OID_AUTO, "_ACx", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, + &sc->tz_zone.ac, sizeof(sc->tz_zone.ac), sysctl_handle_opaque, "IK", + ""); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_TC1", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.tc1), - acpi_tz_passive_sysctl, "I", - "thermal constant 1 for passive cooling"); + OID_AUTO, "_TC1", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.tc1), acpi_tz_passive_sysctl, + "I", "thermal constant 1 for passive cooling"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_TC2", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.tc2), - acpi_tz_passive_sysctl, "I", - "thermal constant 2 for passive cooling"); + OID_AUTO, "_TC2", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.tc2), acpi_tz_passive_sysctl, + "I", "thermal constant 2 for passive cooling"); SYSCTL_ADD_PROC(&sc->tz_sysctl_ctx, SYSCTL_CHILDREN(sc->tz_sysctl_tree), - OID_AUTO, "_TSP", CTLTYPE_INT | CTLFLAG_RW, - sc, offsetof(struct acpi_tz_softc, tz_zone.tsp), - acpi_tz_passive_sysctl, "I", - "thermal sampling period for passive cooling"); + OID_AUTO, "_TSP", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, + offsetof(struct acpi_tz_softc, tz_zone.tsp), acpi_tz_passive_sysctl, + "I", "thermal sampling period for passive cooling"); /* * Register our power profile event handler. diff --git a/sys/dev/acpica/acpi_timer.c b/sys/dev/acpica/acpi_timer.c index 34a832089a23..20ad87840c7a 100644 --- a/sys/dev/acpica/acpi_timer.c +++ b/sys/dev/acpica/acpi_timer.c @@ -368,8 +368,10 @@ acpi_timer_sysctl_freq(SYSCTL_HANDLER_ARGS) return (error); } -SYSCTL_PROC(_machdep, OID_AUTO, acpi_timer_freq, CTLTYPE_INT | CTLFLAG_RW, - 0, sizeof(u_int), acpi_timer_sysctl_freq, "I", "ACPI timer frequency"); +SYSCTL_PROC(_machdep, OID_AUTO, acpi_timer_freq, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, 0, sizeof(u_int), + acpi_timer_sysctl_freq, "I", + "ACPI timer frequency"); /* * Some ACPI timers are known or believed to suffer from implementation diff --git a/sys/dev/acpica/acpi_video.c b/sys/dev/acpica/acpi_video.c index ad3ac4eba751..f3b28e9c48a6 100644 --- a/sys/dev/acpica/acpi_video.c +++ b/sys/dev/acpica/acpi_video.c @@ -254,9 +254,9 @@ acpi_video_attach(device_t dev) ACPI_SERIAL_BEGIN(video); if (acpi_video_sysctl_tree == NULL) { acpi_video_sysctl_tree = SYSCTL_ADD_NODE(&acpi_video_sysctl_ctx, - SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), - OID_AUTO, "video", CTLFLAG_RD, 0, - "video extension control"); + SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, + "video", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "video extension control"); } ACPI_SERIAL_END(video); @@ -539,39 +539,40 @@ acpi_video_vo_init(UINT32 adr) vo->vo_sysctl_tree = SYSCTL_ADD_NODE(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(acpi_video_sysctl_tree), - OID_AUTO, name, CTLFLAG_RD, 0, desc); + OID_AUTO, name, CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, desc); if (vo->vo_sysctl_tree != NULL) { SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(vo->vo_sysctl_tree), OID_AUTO, "active", - CTLTYPE_INT|CTLFLAG_RW, vo, 0, - acpi_video_vo_active_sysctl, "I", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vo, + 0, acpi_video_vo_active_sysctl, "I", "current activity of this device"); SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(vo->vo_sysctl_tree), OID_AUTO, "brightness", - CTLTYPE_INT|CTLFLAG_RW, vo, 0, - acpi_video_vo_bright_sysctl, "I", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vo, + 0, acpi_video_vo_bright_sysctl, "I", "current brightness level"); SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(vo->vo_sysctl_tree), OID_AUTO, "fullpower", - CTLTYPE_INT|CTLFLAG_RW, vo, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vo, POWER_PROFILE_PERFORMANCE, acpi_video_vo_presets_sysctl, "I", "preset level for full power mode"); SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(vo->vo_sysctl_tree), OID_AUTO, "economy", - CTLTYPE_INT|CTLFLAG_RW, vo, + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, vo, POWER_PROFILE_ECONOMY, acpi_video_vo_presets_sysctl, "I", "preset level for economy mode"); SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx, SYSCTL_CHILDREN(vo->vo_sysctl_tree), OID_AUTO, "levels", - CTLTYPE_INT | CTLFLAG_RD, vo, 0, - acpi_video_vo_levels_sysctl, "I", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, vo, + 0, acpi_video_vo_levels_sysctl, "I", "supported brightness levels"); } else printf("%s: sysctl node creation failed\n", type); |
