diff --git a/mm/slub.c b/mm/slub.c index b43c48f40bc8..a9c1270c65bc 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -5674,7 +5674,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++ = ':'; /* @@ -5722,6 +5723,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);