ptr_ring: fail early if queue occupies more than KMALLOC_MAX_SIZE
[linux-2.6-microblaze.git] / include / linux / ptr_ring.h
index 1883d61..6051a5f 100644 (file)
@@ -466,6 +466,8 @@ static inline int ptr_ring_consume_batched_bh(struct ptr_ring *r,
 
 static inline void **__ptr_ring_init_queue_alloc(unsigned int size, gfp_t gfp)
 {
+       if (size * sizeof(void *) > KMALLOC_MAX_SIZE)
+               return NULL;
        return kcalloc(size, sizeof(void *), gfp);
 }