summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorjordan <jordan@openbsd.org>2011-06-02 17:15:53 +0000
committerjordan <jordan@openbsd.org>2011-06-02 17:15:53 +0000
commit9299cc7ef6be9efd502ac79663cdbe1bae034e74 (patch)
tree51263a8db771e0adc9068843c3a91752edcf0a8a /sys/dev
parentHack to ensure that the in-core labels contain the current bounds (diff)
downloadwireguard-openbsd-9299cc7ef6be9efd502ac79663cdbe1bae034e74.tar.xz
wireguard-openbsd-9299cc7ef6be9efd502ac79663cdbe1bae034e74.zip
Fix CondRef definition to support optional target. Fixes docking on Dell E4310
ok marco@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpi/dsdt.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/acpi/dsdt.c b/sys/dev/acpi/dsdt.c
index 8a8f4788024..fabe5e77711 100644
--- a/sys/dev/acpi/dsdt.c
+++ b/sys/dev/acpi/dsdt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsdt.c,v 1.185 2011/04/22 18:22:01 jordan Exp $ */
+/* $OpenBSD: dsdt.c,v 1.186 2011/06/02 17:15:53 jordan Exp $ */
/*
* Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
*
@@ -244,7 +244,7 @@ struct aml_opcode aml_table[] = {
{ AMLOP_INDEX, "Index", "tir", },
{ AMLOP_DEREFOF, "DerefOf", "t", },
{ AMLOP_REFOF, "RefOf", "S", },
- { AMLOP_CONDREFOF, "CondRef", "SS", },
+ { AMLOP_CONDREFOF, "CondRef", "Sr", },
{ AMLOP_LOADTABLE, "LoadTable", "tttttt" },
{ AMLOP_STALL, "Stall", "i", },
@@ -3537,10 +3537,11 @@ aml_parse(struct aml_scope *scope, int ret_type, const char *stype)
ival = 0;
if (opargs[0]->node != NULL) {
/* Create Object Reference */
- opargs[2] = aml_allocvalue(AML_OBJTYPE_OBJREF, opcode,
+ rv = aml_allocvalue(AML_OBJTYPE_OBJREF, opcode,
opargs[0]);
aml_addref(opargs[0], "CondRef");
- aml_store(scope, opargs[1], 0, opargs[2]);
+ aml_store(scope, opargs[1], 0, rv);
+ aml_delref(&rv, 0);
/* Mark that we found it */
ival = -1;