Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37cd0a007f88f1d6269035bdb02b50f536cca8de
Commit:     37cd0a007f88f1d6269035bdb02b50f536cca8de
Parent:     f276730f8da0e8136d8491b6ef44fc719d450a1b
Author:     Klaus D. Wacker <[EMAIL PROTECTED]>
AuthorDate: Wed Aug 22 13:51:39 2007 +0200
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Wed Aug 22 13:51:47 2007 +0200

    [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: Klaus D. Wacker <[EMAIL PROTECTED]>
    Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 drivers/s390/cio/qdio.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index badfb5b..d8d4798 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -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:
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to