diff --git a/lib/idr.c b/lib/idr.c index 6098336..7767abe 100644 --- a/lib/idr.c +++ b/lib/idr.c @@ -30,6 +30,7 @@ #include #include #include +#include #define MAX_IDR_SHIFT (sizeof(int) * 8 - 1) #define MAX_IDR_BIT (1U << MAX_IDR_SHIFT) @@ -194,6 +195,9 @@ static int __idr_pre_get(struct idr *idp, gfp_t gfp_mask) while (idp->id_free_cnt < MAX_IDR_FREE) { struct idr_layer *new; new = kmem_cache_zalloc(idr_layer_cache, gfp_mask); + pr_err("HERE: %s:%d allocated %p from idr_layer_cache\n", __FILE__, __LINE__, new); + pr_err("idr_layer_cache: %p, slab_cache: %p\n", idr_layer_cache, virt_to_page(new)->slab_cache); + BUG_ON(virt_to_page(new)->slab_cache != idr_layer_cache); if (new == NULL) return (0); move_to_free_list(idp, new);