Date: Wed, 25 Apr 2007 14:57:13 -0700 From: Nate Lawson <nate@root.org> To: John Baldwin <jhb@freebsd.org> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/dev/acpica acpi.c Message-ID: <462FCEB9.40406@root.org> In-Reply-To: <200704251356.35785.jhb@freebsd.org> References: <20070425162233.8CCFC16A59E@hub.freebsd.org> <462F8672.7040200@root.org> <200704251356.35785.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote: > On Wednesday 25 April 2007 12:48:50 pm Nate Lawson wrote: >> John Baldwin wrote: >>> jhb 2007-04-25 16:22:18 UTC >>> >>> FreeBSD src repository >>> >>> Modified files: >>> sys/dev/acpica acpi.c >>> Log: >>> Use a tighter check to see if a resource allocation request is for a >>> specific request and thus should first try to be allocated from the >>> sys_resource pool. This avoids using the sys_resource pool for wildcard >>> requests that have bounded ranges coming from cbb(4) and Host-PCI > pcib(4) >>> drivers. >>> >>> Tested by: Andrea Bittau <a.bittau of cs.ucl.ac.uk fame> >>> Sleuthing by: Andrea Bittau as well >>> >>> Revision Changes Path >>> 1.235 +1 -1 src/sys/dev/acpica/acpi.c >>> >>> >>> Index: src/sys/dev/acpica/acpi.c >>> diff -u src/sys/dev/acpica/acpi.c:1.234 src/sys/dev/acpica/acpi.c:1.235 >>> --- src/sys/dev/acpica/acpi.c:1.234 Thu Mar 22 18:16:40 2007 >>> +++ src/sys/dev/acpica/acpi.c Wed Apr 25 16:22:18 2007 >>> @@ -1034,7 +1034,7 @@ >>> * the request from our system resource regions. If we can't, pass > the >>> * request up to the parent. >>> */ >>> - if (!(start == 0UL && end == ~0UL) && rm != NULL) >>> + if (start + count - 1 == end && rm != NULL) >>> res = rman_reserve_resource(rm, start, end, count, flags & ~RF_ACTIVE, >>> child); >>> if (res == NULL) { >> I think I'll test this to see if it helps my via 8235 ata survive boot. > > I wonder if in fact the algorithm shouldn't be changed to always try to alloc > the resource from the parent first, and only fall back to the sys_resource > rmans if that fails? In theory any resource requests that should be done via > sys_resource will fail the request in the parent, yes? > Yes, that should be ok but why not do local first and then push up tree if it fails? Semantically, a child of your bus requested the resource so most of the time you should be able to handle it. -- Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?462FCEB9.40406>