--- 2.3.40pre1-slab/mm/slab.c.~1~ Sun Jan 9 20:45:31 2000 +++ 2.3.40pre1-slab/mm/slab.c Thu Jan 13 05:18:50 2000 @@ -1857,11 +1857,10 @@ } while (--scan && searchp != clock_searchp); clock_searchp = searchp; - up(&cache_chain_sem); if (!best_cachep) { /* couldn't find anything to reap */ - return; + goto out; } spin_lock_irq(&best_cachep->c_spinlock); @@ -1895,6 +1894,8 @@ } dma_fail: spin_unlock_irq(&best_cachep->c_spinlock); +out: + up(&cache_chain_sem); return; }