diff --git a/mm/slub.c b/mm/slub.c index c07c5fa6adcd..3291d3ef86b0 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -5601,7 +5601,8 @@ static char *create_unique_id(struct kmem_cache *s) char *name = kmalloc(ID_STR_LENGTH, GFP_KERNEL); char *p = name; - BUG_ON(!name); + if (!name) + return ERR_PTR(-ENOMEM); *p++ = ':'; /* @@ -5649,6 +5650,8 @@ static int sysfs_slab_add(struct kmem_cache *s) * for the symlinks. */ name = create_unique_id(s); + if (IS_ERR(name)) + return PTR_ERR(name); } s->kobj.kset = cache_kset(s);