struct kfifo *kfifo_alloc(unsigned int size, unsigned int __nocast gfp_mask, spinlock_t *lock) 
struct kfifo *kfifo_alloc(unsigned int size, gfp_t gfp_mask, spinlock_t *lock) 
struct kfifo *kfifo_alloc(unsigned int size, unsigned int __nocast gfp_mask, spinlock_t *lock){	unsigned char *buffer;	struct kfifo *ret;	/*	 * round up to the next power of 2, since our 'let the indices	 * wrap' tachnique works only in this case.	 */	if (size & (size - 1)) {		BUG_ON(size > 0x80000000);		size = roundup_pow_of_two(size);	}	buffer = kmalloc(size, gfp_mask);	if (!buffer)		return ERR_PTR(-ENOMEM);	ret = kfifo_init(buffer, size, gfp_mask, lock);	if (IS_ERR(ret))		kfree(buffer);	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7/kfifo.c/clean/kernel/kfifo.c