diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 5f6539c7f1..dce69bb00c 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -613,7 +613,8 @@ cut_area(VMAddressSpace* addressSpace, VMArea* area, addr_t address, // If no one else uses the area's cache, we can resize it, too. if (cache->areas == area && area->cache_next == NULL - && list_is_empty(&cache->consumers)) { + && list_is_empty(&cache->consumers) + && cache->type == CACHE_TYPE_RAM) { // Since VMCache::Resize() can temporarily drop the lock, we must // unlock all lower caches to prevent locking order inversion. cacheChainLocker.Unlock(cache);