Lines Matching refs:queue

152 static void ibmvscsi_release_crq_queue(struct crq_queue *queue,  in ibmvscsi_release_crq_queue()  argument
166 queue->msg_token, in ibmvscsi_release_crq_queue()
167 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL); in ibmvscsi_release_crq_queue()
168 free_page((unsigned long)queue->msgs); in ibmvscsi_release_crq_queue()
178 static struct viosrp_crq *crq_queue_next_crq(struct crq_queue *queue) in crq_queue_next_crq() argument
183 spin_lock_irqsave(&queue->lock, flags); in crq_queue_next_crq()
184 crq = &queue->msgs[queue->cur]; in crq_queue_next_crq()
186 if (++queue->cur == queue->size) in crq_queue_next_crq()
187 queue->cur = 0; in crq_queue_next_crq()
195 spin_unlock_irqrestore(&queue->lock, flags); in crq_queue_next_crq()
232 while ((crq = crq_queue_next_crq(&hostdata->queue)) != NULL) { in ibmvscsi_task()
238 crq = crq_queue_next_crq(&hostdata->queue); in ibmvscsi_task()
296 static int ibmvscsi_reset_crq_queue(struct crq_queue *queue, in ibmvscsi_reset_crq_queue() argument
310 memset(queue->msgs, 0x00, PAGE_SIZE); in ibmvscsi_reset_crq_queue()
311 queue->cur = 0; in ibmvscsi_reset_crq_queue()
318 queue->msg_token, PAGE_SIZE); in ibmvscsi_reset_crq_queue()
337 static int ibmvscsi_init_crq_queue(struct crq_queue *queue, in ibmvscsi_init_crq_queue() argument
345 queue->msgs = (struct viosrp_crq *)get_zeroed_page(GFP_KERNEL); in ibmvscsi_init_crq_queue()
347 if (!queue->msgs) in ibmvscsi_init_crq_queue()
349 queue->size = PAGE_SIZE / sizeof(*queue->msgs); in ibmvscsi_init_crq_queue()
351 queue->msg_token = dma_map_single(hostdata->dev, queue->msgs, in ibmvscsi_init_crq_queue()
352 queue->size * sizeof(*queue->msgs), in ibmvscsi_init_crq_queue()
355 if (dma_mapping_error(hostdata->dev, queue->msg_token)) in ibmvscsi_init_crq_queue()
363 queue->msg_token, PAGE_SIZE); in ibmvscsi_init_crq_queue()
366 rc = ibmvscsi_reset_crq_queue(queue, in ibmvscsi_init_crq_queue()
378 queue->cur = 0; in ibmvscsi_init_crq_queue()
379 spin_lock_init(&queue->lock); in ibmvscsi_init_crq_queue()
410 queue->msg_token, in ibmvscsi_init_crq_queue()
411 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL); in ibmvscsi_init_crq_queue()
413 free_page((unsigned long)queue->msgs); in ibmvscsi_init_crq_queue()
424 static int ibmvscsi_reenable_crq_queue(struct crq_queue *queue, in ibmvscsi_reenable_crq_queue() argument
2178 rc = ibmvscsi_reset_crq_queue(&hostdata->queue, hostdata); in ibmvscsi_do_work()
2185 rc = ibmvscsi_reenable_crq_queue(&hostdata->queue, hostdata); in ibmvscsi_do_work()
2282 rc = ibmvscsi_init_crq_queue(&hostdata->queue, hostdata, max_events); in ibmvscsi_probe()
2344 ibmvscsi_release_crq_queue(&hostdata->queue, hostdata, max_events); in ibmvscsi_probe()
2360 ibmvscsi_release_crq_queue(&hostdata->queue, hostdata, in ibmvscsi_remove()