Makes SLUB behave like SLAB in this area to avoid issues....
Throw a stack dump to alert people.
At some point the behavior should be switched back.  NULL is no memory as
far as I can tell and if the use asked for 0 bytes then he need to get no
memory.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  */
 static inline int kmalloc_index(int size)
 {
-       if (size == 0)
-               return 0;
+       /*
+        * We should return 0 if size == 0 but we use the smallest object
+        * here for SLAB legacy reasons.
+        */
+       WARN_ON_ONCE(size == 0);
+
        if (size > 64 && size <= 96)
                return 1;
        if (size > 128 && size <= 192)
 
 {
        int index = kmalloc_index(size);
 
-       if (!size)
+       if (!index)
                return NULL;
 
        /* Allocation too large? */