Re: Common [08/20] Extract common code for kmem_cache_create()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 14 Jun 2012, Glauber Costa wrote:

> On 06/13/2012 07:24 PM, Christoph Lameter wrote:
> > +struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t
> > align,
> > +		unsigned long flags, void (*ctor)(void *))
> > +{
> > +	struct kmem_cache *s = NULL;
> > +
> > +#ifdef CONFIG_DEBUG_VM
> > +	if (!name || in_interrupt() || size<  sizeof(void *) ||
> > +		size>  KMALLOC_MAX_SIZE) {
> > +		printk(KERN_ERR "kmem_cache_create(%s) integrity check"
> > +			" failed\n", name);
> > +		goto out;
> > +	}
> > +#endif
>
> Not really a BUG, but label out is not used if !CONFIG_DEBUG_VM. Suggest
> testing for the slab panic flag here, and panicing if we need to.

Hmmm.. That is quite sensitive. A change here will cause later patches in
the series to have issues. Maybe its best to put an #ifdef around the
label until a later patch that makes use of out: from code that is not
#ifdefed.


Subject: Add #ifdef to avoid warning about unused label

out: is only used if CONFIG_DEBUG_VM is enabled.

Signed-off-by: Christoph Lameter <cl@xxxxxxxxx>

Index: linux-2.6/mm/slab_common.c
===================================================================
--- linux-2.6.orig/mm/slab_common.c	2012-06-14 03:16:06.778702087 -0500
+++ linux-2.6/mm/slab_common.c	2012-06-14 03:16:01.054702201 -0500
@@ -57,7 +57,9 @@ struct kmem_cache *kmem_cache_create(con

 	s = __kmem_cache_create(name, size, align, flags, ctor);

+#ifdef CONFIG_DEBUG_VM
 out:
+#endif
 	if (!s && (flags & SLAB_PANIC))
 		panic("kmem_cache_create: Failed to create slab '%s'\n", name);

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]