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]"

Reply via email to