Commit:     33e9e24101abac2bf3535d0d013d6d27d19197cb
Parent:     418508c13222ddba475873ea95c8aeadd26104f2
Author:     Christoph Lameter <[EMAIL PROTECTED]>
AuthorDate: Wed May 23 13:57:56 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed May 23 20:14:13 2007 -0700

    SLUB Debug: fix check for super sized slabs (>512k 64bit, >256k 32bit)
    The check for super sized slabs where we can no longer move the free
    pointer behind the object for debugging purposes etc is accessing a
    field that is not setup yet.  We must use objsize here since the size of
    the slab has not been determined yet.
    The effect of this is that a global slab shrink via "slabinfo -s" will
    show errors about offsets being wrong if booted with slub_debug.
    Potentially there are other troubles with huge slabs under slub_debug
    because the calculated free pointer offset is truncated.
    Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 mm/slub.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index 0b0c2a3..3e5aefc 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -939,7 +939,7 @@ static void kmem_cache_open_debug_check(struct kmem_cache 
         * Debugging or ctor may create a need to move the free
         * pointer. Fail if this happens.
-       if (s->size >= 65535 * sizeof(void *)) {
+       if (s->objsize >= 65535 * sizeof(void *)) {
                BUG_ON(s->flags & (SLAB_RED_ZONE | SLAB_POISON |
                                SLAB_STORE_USER | SLAB_DESTROY_BY_RCU));
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to