if (unlikely(!rxq)) { IPW_ERROR("memory allocation failed\n"); return NULL; } 
static struct ipw_rx_queue *ipw_rx_queue_alloc(struct ipw_priv *priv){	struct ipw_rx_queue *rxq;	int i;	rxq = (struct ipw_rx_queue *)kmalloc(sizeof(*rxq), GFP_KERNEL);	memset(rxq, 0, sizeof(*rxq));	spin_lock_init(&rxq->lock);	INIT_LIST_HEAD(&rxq->rx_free);	INIT_LIST_HEAD(&rxq->rx_used);	/* Fill the rx_used queue with _all_ of the Rx buffers */	for (i = 0; i < RX_FREE_BUFFERS + RX_QUEUE_SIZE; i++)		list_add_tail(&rxq->pool[i].list, &rxq->rx_used);	/* Set us so that we have processed and used all buffers, but have	 * not restocked the Rx queue with fresh buffers */	rxq->read = rxq->write = 0;	rxq->processed = RX_QUEUE_SIZE - 1;	rxq->free_count = 0;	return rxq;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ad18b0ea089928367185e13d11424aea91d4b41f/ipw2200.c/clean/drivers/net/wireless/ipw2200.c