aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_main.c
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2009-09-22 16:58:40 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-09-22 16:58:43 -0400
commit6541f7b68f229aacd2e453bc9e94335fc56419fe (patch)
treed60909e665626ed5656d4269712e50652f7de2cf /drivers/s390/cio/qdio_main.c
parent1d7e1500a6acfc89415aa2524e2c475c980ac42a (diff)
[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.c2
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)
455 count--; 455 count--;
456 if (!count) 456 if (!count)
457 return; 457 return;
458 /* need to change ALL buffers to get more interrupts */
459 set_buf_states(q, q->first_to_check, SLSB_P_INPUT_NOT_INIT, count);
458} 460}
459 461
460static int get_inbound_buffer_frontier(struct qdio_q *q) 462static int get_inbound_buffer_frontier(struct qdio_q *q)