From 1edd8d28a56578307df36967d51f16703d8f33bd Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 30 Jun 2016 19:11:06 +0200 Subject: acpi: _ADR and _BBN might be methods, so use amleval() to evaluate the value --- sys/src/9/pc/archacpi.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'sys/src') diff --git a/sys/src/9/pc/archacpi.c b/sys/src/9/pc/archacpi.c index c2ed1580f..370905103 100644 --- a/sys/src/9/pc/archacpi.c +++ b/sys/src/9/pc/archacpi.c @@ -260,7 +260,10 @@ pcibusno(void *dot) if((x = amlwalk(dot, "^_BBN")) == nil) if((x = amlwalk(dot, "^_ADR")) == nil) return -1; - adr = amlint(amlval(x)); + p = nil; + if(amleval(x, "", &p) < 0) + return -1; + adr = amlint(p); /* if root bridge, then we are done here */ if(id != nil && (strcmp(id, "PNP0A03")==0 || strcmp(id, "PNP0A08")==0)) return adr; @@ -282,7 +285,7 @@ static int pciaddr(void *dot) { int adr, bno; - void *x; + void *x, *p; for(;;){ if((x = amlwalk(dot, "_ADR")) == nil){ @@ -294,9 +297,10 @@ pciaddr(void *dot) } if((bno = pcibusno(x)) < 0) break; - if((x = amlval(x)) == nil) + p = nil; + if(amleval(x, "", &p) < 0) break; - adr = amlint(x); + adr = amlint(p); return MKBUS(BusPCI, bno, adr>>16, adr&0xFFFF); } return -1; -- cgit v1.2.3