Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 779 → Rev 780

/kernel/trunk/test/mm/slab2/test.c
199,5 → 199,6
 
multitest(128);
multitest(2048);
multitest(8192);
printf("All done.\n");
}
/kernel/trunk/generic/src/mm/slab.c
234,6 → 234,7
slab = obj2slab(obj);
 
ASSERT(slab->cache == cache);
ASSERT(slab->available < cache->objects);
 
spinlock_lock(&cache->slablock);
 
242,11 → 243,6
slab->available++;
 
/* Move it to correct list */
if (slab->available == 1) {
/* It was in full, move to partial */
list_remove(&slab->link);
list_prepend(&slab->link, &cache->partial_slabs);
}
if (slab->available == cache->objects) {
/* Free associated memory */
list_remove(&slab->link);
254,6 → 250,10
* magazine is always allocated with NO reclaim,
* keep all locks */
frames = slab_space_free(cache, slab);
} else if (slab->available == 1) {
/* It was in full, move to partial */
list_remove(&slab->link);
list_prepend(&slab->link, &cache->partial_slabs);
}
 
spinlock_unlock(&cache->slablock);
282,9 → 282,9
*/
spinlock_unlock(&cache->slablock);
slab = slab_space_alloc(cache, flags);
if (!slab)
return NULL;
spinlock_lock(&cache->slablock);
if (!slab)
goto err;
} else {
slab = list_get_instance(cache->partial_slabs.next,
slab_t,
301,9 → 301,6
 
spinlock_unlock(&cache->slablock);
return obj;
err:
spinlock_unlock(&cache->slablock);
return NULL;
}
 
/**************************************/