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
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"