Lines Matching refs:queue

113  * Routines for managing the command/response queue
134 * @queue: crq_queue to initialize and register
141 static void ibmvscsi_release_crq_queue(struct crq_queue *queue,
155 queue->msg_token,
156 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL);
157 free_page((unsigned long)queue->msgs);
161 * crq_queue_next_crq: - Returns the next entry in message queue
162 * @queue: crq_queue to use
164 * Returns pointer to next entry in queue, or NULL if there are no new
167 static struct viosrp_crq *crq_queue_next_crq(struct crq_queue *queue)
172 spin_lock_irqsave(&queue->lock, flags);
173 crq = &queue->msgs[queue->cur];
175 if (++queue->cur == queue->size)
176 queue->cur = 0;
184 spin_unlock_irqrestore(&queue->lock, flags);
221 while ((crq = crq_queue_next_crq(&hostdata->queue)) != NULL) {
228 crq = crq_queue_next_crq(&hostdata->queue);
281 * @queue: crq_queue to initialize and register
284 static int ibmvscsi_reset_crq_queue(struct crq_queue *queue,
297 /* Clean out the queue */
298 memset(queue->msgs, 0x00, PAGE_SIZE);
299 queue->cur = 0;
306 queue->msg_token, PAGE_SIZE);
318 * @queue: crq_queue to initialize and register
326 static int ibmvscsi_init_crq_queue(struct crq_queue *queue,
334 queue->msgs = (struct viosrp_crq *)get_zeroed_page(GFP_KERNEL);
336 if (!queue->msgs)
338 queue->size = PAGE_SIZE / sizeof(*queue->msgs);
340 queue->msg_token = dma_map_single(hostdata->dev, queue->msgs,
341 queue->size * sizeof(*queue->msgs),
344 if (dma_mapping_error(hostdata->dev, queue->msg_token))
352 queue->msg_token, PAGE_SIZE);
355 rc = ibmvscsi_reset_crq_queue(queue,
367 queue->cur = 0;
368 spin_lock_init(&queue->lock);
399 queue->msg_token,
400 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL);
402 free_page((unsigned long)queue->msgs);
409 * @queue: crq_queue to initialize and register
412 static int ibmvscsi_reenable_crq_queue(struct crq_queue *queue,
956 "Receive queue closed, will retry.\n");
1762 * @crq: Command/Response queue
1885 * ibmvscsi_change_queue_depth - Change the device's queue depth
2137 rc = ibmvscsi_reset_crq_queue(&hostdata->queue, hostdata);
2146 rc = ibmvscsi_reenable_crq_queue(&hostdata->queue, hostdata);
2264 rc = ibmvscsi_init_crq_queue(&hostdata->queue, hostdata, max_events);
2329 ibmvscsi_release_crq_queue(&hostdata->queue, hostdata, max_events);
2350 ibmvscsi_release_crq_queue(&hostdata->queue, hostdata,