Hi,
Instead of passing sizeof(struct aml_value)*4 as the len argument to
memset when writing zeros to osc_cmd, pass sizeof(osc_cmd) since osc_cmd
already is declared as 'struct aml_value osc_cmd[4]'.
Tested on amd64.
Index: acpicpu.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpicpu.c,v
retrieving revision 1.78
diff -u -p -r1.78 acpicpu.c
--- acpicpu.c 18 Sep 2016 23:56:45 -0000 1.78
+++ acpicpu.c 2 Apr 2017 08:24:52 -0000
@@ -240,7 +240,7 @@ acpicpu_set_pdc(struct acpicpu_softc *sc
if (aml_searchname(sc->sc_devnode, "_OSC")) {
/* Query _OSC */
- memset(&osc_cmd, 0, sizeof(cmd) * 4);
+ memset(&osc_cmd, 0, sizeof(osc_cmd));
osc_cmd[0].type = AML_OBJTYPE_BUFFER;
osc_cmd[0].v_buffer = (uint8_t *)&cpu_oscuuid;
osc_cmd[0].length = sizeof(cpu_oscuuid);
@@ -269,7 +269,7 @@ acpicpu_set_pdc(struct acpicpu_softc *sc
}
/* Evaluate _OSC */
- memset(&osc_cmd, 0, sizeof(cmd) * 4);
+ memset(&osc_cmd, 0, sizeof(osc_cmd));
osc_cmd[0].type = AML_OBJTYPE_BUFFER;
osc_cmd[0].v_buffer = (uint8_t *)&cpu_oscuuid;
osc_cmd[0].length = sizeof(cpu_oscuuid);