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>
