Browse Source

[S390] qdio: continue polling if the queue is not finished

With commit c38f96080955854e54df9cb392bc674e1ae330e1 polling was
stopped for the queue even if new data is available.

Return immediately after scheduling the queue tasklet if the queue
is not done.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Jan Glauber 15 years ago
parent
commit
e2910bcf8c
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/s390/cio/qdio_main.c

+ 3 - 1
drivers/s390/cio/qdio_main.c

@@ -798,8 +798,10 @@ static void __tiqdio_inbound_processing(struct qdio_q *q)
 
 
 	if (!qdio_inbound_q_done(q)) {
 	if (!qdio_inbound_q_done(q)) {
 		qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop);
 		qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop);
-		if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED))
+		if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) {
 			tasklet_schedule(&q->tasklet);
 			tasklet_schedule(&q->tasklet);
+			return;
+		}
 	}
 	}
 
 
 	qdio_stop_polling(q);
 	qdio_stop_polling(q);