Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/slab.c

    r55b77d9 rab6f2507  
    317317                spinlock_lock(&cache->slablock);
    318318        } else {
    319                 slab = list_get_instance(list_first(&cache->partial_slabs),
    320                     slab_t, link);
     319                slab = list_get_instance(cache->partial_slabs.next, slab_t,
     320                    link);
    321321                list_remove(&slab->link);
    322322        }
     
    360360        if (!list_empty(&cache->magazines)) {
    361361                if (first)
    362                         cur = list_first(&cache->magazines);
     362                        cur = cache->magazines.next;
    363363                else
    364                         cur = list_last(&cache->magazines);
     364                        cur = cache->magazines.prev;
    365365               
    366366                mag = list_get_instance(cur, slab_magazine_t, link);
     
    812812       
    813813        size_t frames = 0;
    814         list_foreach(slab_cache_list, cur) {
     814        link_t *cur;
     815        for (cur = slab_cache_list.next; cur != &slab_cache_list;
     816            cur = cur->next) {
    815817                slab_cache_t *cache = list_get_instance(cur, slab_cache_t, link);
    816818                frames += _slab_reclaim(cache, flags);
     
    859861                link_t *cur;
    860862                size_t i;
    861                 for (i = 0, cur = slab_cache_list.head.next;
    862                     (i < skip) && (cur != &slab_cache_list.head);
     863                for (i = 0, cur = slab_cache_list.next;
     864                    (i < skip) && (cur != &slab_cache_list);
    863865                    i++, cur = cur->next);
    864866               
    865                 if (cur == &slab_cache_list.head) {
     867                if (cur == &slab_cache_list) {
    866868                        irq_spinlock_unlock(&slab_cache_lock, true);
    867869                        break;
     
    938940        irq_spinlock_lock(&slab_cache_lock, false);
    939941       
    940         list_foreach(slab_cache_list, cur) {
     942        link_t *cur;
     943        for (cur = slab_cache_list.next; cur != &slab_cache_list;
     944            cur = cur->next) {
    941945                slab_cache_t *slab = list_get_instance(cur, slab_cache_t, link);
    942946                if ((slab->flags & SLAB_CACHE_MAGDEFERRED) !=
Note: See TracChangeset for help on using the changeset viewer.