Fix a hang during boot.
authorYONETANI Tomokazu <y0netan1@dragonflybsd.org>
Fri, 19 Jan 2007 23:58:53 +0000 (23:58 +0000)
committerYONETANI Tomokazu <y0netan1@dragonflybsd.org>
Fri, 19 Jan 2007 23:58:53 +0000 (23:58 +0000)
MaxDepth argument to AcpiOsCacheCreate() is `maximum number of
unallocated objects', not `maximum number of allocatable objects'.
This resulted in what seemed to be a hang if the number of objects
in a cache exceeded ACPI_MAX_*_CACHE_DEPTH(currently 96).

Tracked-down-by: Simon 'corecode' Schubert <corecode at fs.ei.tum.de>
Tested-by: Johannes Hofmann <Johannes.Hofmann at gmx.de>
sys/dev/acpica5/Osd/OsdCache.c

index ac09144..f141cb5 100644 (file)
@@ -29,7 +29,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $DragonFly: src/sys/dev/acpica5/Osd/OsdCache.c,v 1.1 2007/01/17 17:31:19 y0netan1 Exp $
+ * $DragonFly: src/sys/dev/acpica5/Osd/OsdCache.c,v 1.2 2007/01/19 23:58:53 y0netan1 Exp $
  */
 
 #include <sys/objcache.h>
@@ -52,8 +52,8 @@ AcpiOsCreateCache(char *CacheName, UINT16 ObjectSize, UINT16 MaxDepth,
        cache = kmalloc(sizeof(*cache), M_TEMP, M_WAITOK);
        cache->args.objsize = ObjectSize;
        cache->args.mtype = M_CACHE;
-       cache->cache = objcache_create(CacheName, MaxDepth, 0, NULL, NULL, NULL,
-           objcache_malloc_alloc, objcache_malloc_free, &cache->args);
+       cache->cache = objcache_create(CacheName, 0, 0, NULL, NULL,
+           NULL, objcache_malloc_alloc, objcache_malloc_free, &cache->args);
        *ReturnCache = cache;
        return AE_OK;
 }