Changeset f049eec in mainline for kernel/generic/src/mm/frame.c


Ignore:
Timestamp:
2009-04-04T01:51:11Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7d440e3
Parents:
3f2177e
Message:

avoid deadlock while reclaiming slab memory

File:
1 edited

Legend:

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

    r3f2177e rf049eec  
    993993           if it does not help, reclaim all */
    994994        if ((znum == (count_t) -1) && (!(flags & FRAME_NO_RECLAIM))) {
     995                spinlock_unlock(&zones.lock);
     996                interrupts_restore(ipl);
     997               
    995998                count_t freed = slab_reclaim(0);
     999               
     1000                ipl = interrupts_disable();
     1001                spinlock_lock(&zones.lock);
    9961002               
    9971003                if (freed > 0)
     
    10001006               
    10011007                if (znum == (count_t) -1) {
     1008                        spinlock_unlock(&zones.lock);
     1009                        interrupts_restore(ipl);
     1010                       
    10021011                        freed = slab_reclaim(SLAB_RECLAIM_ALL);
     1012                       
     1013                        ipl = interrupts_disable();
     1014                        spinlock_lock(&zones.lock);
     1015                       
    10031016                        if (freed > 0)
    10041017                                znum = find_free_zone(order,
Note: See TracChangeset for help on using the changeset viewer.