Jelajahi Sumber

[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>
Jan Glauber 15 tahun lalu
induk
melakukan
6541f7b68f
1 mengubah file dengan 2 tambahan dan 0 penghapusan
  1. 2 0
      drivers/s390/cio/qdio_main.c

+ 2 - 0
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)