Ok so we need this.

Fix up preempt checks.

Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>

---
 mm/slub.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: linux-2.6/mm/slub.c
===================================================================
--- linux-2.6.orig/mm/slub.c    2007-08-22 13:33:40.000000000 -0700
+++ linux-2.6/mm/slub.c 2007-08-22 13:35:31.000000000 -0700
@@ -1469,6 +1469,7 @@ load_freelist:
 out:
        slab_unlock(c->page);
        local_irq_restore(flags);
+       preempt_check_resched();
        if (unlikely((gfpflags & __GFP_ZERO)))
                memset(object, 0, c->objsize);
        return object;
@@ -1512,6 +1513,7 @@ new_slab:
                goto load_freelist;
        }
        local_irq_restore(flags);
+       preempt_check_resched();
        return NULL;
 debug:
        object = c->page->freelist;
@@ -1592,8 +1594,8 @@ static void __slab_free(struct kmem_cach
        void **object = (void *)x;
        unsigned long flags;
 
+       put_cpu();
        local_irq_save(flags);
-       put_cpu_no_resched();
        slab_lock(page);
 
        if (unlikely(SlabDebug(page)))

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to