Ignore:
File:
1 edited

Legend:

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

    r7ce7cfb rab6f2507  
    180180    unsigned int flags)
    181181{
     182       
     183       
    182184        size_t zone = 0;
    183185       
     
    315317                spinlock_lock(&cache->slablock);
    316318        } else {
    317                 slab = list_get_instance(list_first(&cache->partial_slabs),
    318                     slab_t, link);
     319                slab = list_get_instance(cache->partial_slabs.next, slab_t,
     320                    link);
    319321                list_remove(&slab->link);
    320322        }
     
    358360        if (!list_empty(&cache->magazines)) {
    359361                if (first)
    360                         cur = list_first(&cache->magazines);
     362                        cur = cache->magazines.next;
    361363                else
    362                         cur = list_last(&cache->magazines);
     364                        cur = cache->magazines.prev;
    363365               
    364366                mag = list_get_instance(cur, slab_magazine_t, link);
     
    810812       
    811813        size_t frames = 0;
    812         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) {
    813817                slab_cache_t *cache = list_get_instance(cur, slab_cache_t, link);
    814818                frames += _slab_reclaim(cache, flags);
     
    857861                link_t *cur;
    858862                size_t i;
    859                 for (i = 0, cur = slab_cache_list.head.next;
    860                     (i < skip) && (cur != &slab_cache_list.head);
     863                for (i = 0, cur = slab_cache_list.next;
     864                    (i < skip) && (cur != &slab_cache_list);
    861865                    i++, cur = cur->next);
    862866               
    863                 if (cur == &slab_cache_list.head) {
     867                if (cur == &slab_cache_list) {
    864868                        irq_spinlock_unlock(&slab_cache_lock, true);
    865869                        break;
     
    936940        irq_spinlock_lock(&slab_cache_lock, false);
    937941       
    938         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) {
    939945                slab_cache_t *slab = list_get_instance(cur, slab_cache_t, link);
    940946                if ((slab->flags & SLAB_CACHE_MAGDEFERRED) !=
Note: See TracChangeset for help on using the changeset viewer.