Commit 37cd0a00 authored by Klaus D. Wacker's avatar Klaus D. Wacker Committed by Martin Schwidefsky

[S390] qdio: Refresh buffer states for IQDIO Asynchronous output queue

Hipersocket Multicast queue works asynchronously. When sending buffers,
the buffer state change may happen delayed. The tasklet for checking
changes in the outbound queue excluded IQDIO async queues from this
process. This created either a hang situation when the queue ran full,
or presented a hang situation a interface close time.
The tasklet processing is changed to include IQDIO async queues when
requesting buffer state refresh.
Signed-off-by: default avatarKlaus D. Wacker <kdwacker@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent f276730f
...@@ -742,7 +742,8 @@ qdio_get_outbound_buffer_frontier(struct qdio_q *q) ...@@ -742,7 +742,8 @@ qdio_get_outbound_buffer_frontier(struct qdio_q *q)
first_not_to_check=f+qdio_min(atomic_read(&q->number_of_buffers_used), first_not_to_check=f+qdio_min(atomic_read(&q->number_of_buffers_used),
(QDIO_MAX_BUFFERS_PER_Q-1)); (QDIO_MAX_BUFFERS_PER_Q-1));
if ((!q->is_iqdio_q)&&(!q->hydra_gives_outbound_pcis)) if (((!q->is_iqdio_q) && (!q->hydra_gives_outbound_pcis)) ||
(q->queue_type == QDIO_IQDIO_QFMT_ASYNCH))
SYNC_MEMORY; SYNC_MEMORY;
check_next: check_next:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment