|
@@ -121,7 +121,7 @@ int idr_pre_get(struct idr *idp, gfp_t gfp_mask)
|
|
|
{
|
|
|
while (idp->id_free_cnt < IDR_FREE_MAX) {
|
|
|
struct idr_layer *new;
|
|
|
- new = kmem_cache_alloc(idr_layer_cache, gfp_mask);
|
|
|
+ new = kmem_cache_zalloc(idr_layer_cache, gfp_mask);
|
|
|
if (new == NULL)
|
|
|
return (0);
|
|
|
move_to_free_list(idp, new);
|
|
@@ -623,16 +623,10 @@ void *idr_replace(struct idr *idp, void *ptr, int id)
|
|
|
}
|
|
|
EXPORT_SYMBOL(idr_replace);
|
|
|
|
|
|
-static void idr_cache_ctor(void *idr_layer)
|
|
|
-{
|
|
|
- memset(idr_layer, 0, sizeof(struct idr_layer));
|
|
|
-}
|
|
|
-
|
|
|
void __init idr_init_cache(void)
|
|
|
{
|
|
|
idr_layer_cache = kmem_cache_create("idr_layer_cache",
|
|
|
- sizeof(struct idr_layer), 0, SLAB_PANIC,
|
|
|
- idr_cache_ctor);
|
|
|
+ sizeof(struct idr_layer), 0, SLAB_PANIC, NULL);
|
|
|
}
|
|
|
|
|
|
/**
|