diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2009-09-11 04:28:19 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-09-11 04:29:37 -0400 |
commit | e2910bcf8ca762b306767a0894ab1987be014c9e (patch) | |
tree | 366e236cc68cf129b84161c361789dcb1761c998 /drivers | |
parent | efd986db2d720e8f6660ec2c292509ee7d28cc6a (diff) |
[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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 0038750ad94..9aef402a5f1 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -798,8 +798,10 @@ static void __tiqdio_inbound_processing(struct qdio_q *q) | |||
798 | 798 | ||
799 | if (!qdio_inbound_q_done(q)) { | 799 | if (!qdio_inbound_q_done(q)) { |
800 | qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop); | 800 | qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop); |
801 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) | 801 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { |
802 | tasklet_schedule(&q->tasklet); | 802 | tasklet_schedule(&q->tasklet); |
803 | return; | ||
804 | } | ||
803 | } | 805 | } |
804 | 806 | ||
805 | qdio_stop_polling(q); | 807 | qdio_stop_polling(q); |