diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2009-09-22 22:58:40 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-09-22 22:58:43 +0200 |
commit | 6541f7b68f229aacd2e453bc9e94335fc56419fe (patch) | |
tree | d60909e665626ed5656d4269712e50652f7de2cf /drivers/s390/cio/qdio_main.c | |
parent | 1d7e1500a6acfc89415aa2524e2c475c980ac42a (diff) | |
download | linux-6541f7b68f229aacd2e453bc9e94335fc56419fe.tar.gz linux-6541f7b68f229aacd2e453bc9e94335fc56419fe.tar.bz2 linux-6541f7b68f229aacd2e453bc9e94335fc56419fe.zip |
[S390] qdio: change state of all primed input buffers
If input buffers stay in primed state qdio may not receive further interrupts
for the input queue depending on the firmware. That can cause a connection
hang on OSA cards.
Change the state of all primed input buffers that are not acknowledged to
not initialized.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 21766c791ad6..4be6e84b9599 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -455,6 +455,8 @@ static inline void inbound_primed(struct qdio_q *q, int count) count--; if (!count) return; + /* need to change ALL buffers to get more interrupts */ + set_buf_states(q, q->first_to_check, SLSB_P_INPUT_NOT_INIT, count); } static int get_inbound_buffer_frontier(struct qdio_q *q) |