Skip to content

Commit

Permalink
[S390] qdio: Refresh buffer states for IQDIO Asynchronous output queue
Browse files Browse the repository at this point in the history
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: Klaus D. Wacker <kdwacker@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Klaus D. Wacker authored and Martin Schwidefsky committed Aug 22, 2007
1 parent f276730 commit 37cd0a0
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/s390/cio/qdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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),
(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;

check_next:
Expand Down

0 comments on commit 37cd0a0

Please sign in to comment.