Re: [PATCH] slab: Fix off by one in object max number tests.

From: David Miller
Date: Mon May 05 2014 - 16:58:06 EST


From: David Miller <davem@xxxxxxxxxxxxx>
Date: Mon, 05 May 2014 16:20:04 -0400 (EDT)

>
> If freelist_idx_t is a byte, SLAB_OBJ_MAX_NUM should be 255 not 256,
> and likewise if freelist_idx_t is a short, then it should be 65535 not
> 65536.
>
> Fixes: a41adfa ("slab: introduce byte sized index for the freelist of a slab")
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> ---
>
> This was leading to all kinds of random crashes on sparc64 where PAGE_SIZE
> is 8192. One problem shown was that if spinlock debugging was enabled,
> we'd get deadlocks in copy_pte_range() or do_wp_page() with the same cpu
> already holding a lock it shouldn't hold, or the lock belonging to a
> completely unrelated process.

It turns out that after some more testing, I'm still getting spinlock
debugging problems with this fix applied.

The change is still very much correct I think, however.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/