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

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

 



On 06/14/2012 06:18 PM, Christoph Lameter wrote:
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);


That's how my code reads:

#ifdef CONFIG_DEBUG_VM
if (!name || in_interrupt() || size < sizeof(void *) ||
    size    KMALLOC_MAX_SIZE) {

    if ((flags & SLAB_PANIC))
        panic("kmem_cache_create(%s) integrity check failed\n", name);
    printk(KERN_ERR "kmem_cache_create(%s) integrity check failed\n",
           name);
    return NULL;
}
#endif

How can it put any patch later than this in trouble ?

--
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]