diff --git a/Kernel/kmalloc.cpp b/Kernel/kmalloc.cpp index 367d4fcbe7..e946920818 100644 --- a/Kernel/kmalloc.cpp +++ b/Kernel/kmalloc.cpp @@ -112,6 +112,12 @@ void* kmalloc(dword size) for( i = 0; i < (POOL_SIZE / CHUNK_SIZE / 8); ++i ) { + if (alloc_map[i] == 0xff) { + // Skip over completely full bucket. + chunks_here = 0; + continue; + } + // FIXME: This scan can be optimized further with LZCNT. for( j = 0; j < 8; ++j ) { if( !(alloc_map[i] & (1<