aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/qdio_thinint.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/qdio_thinint.c')
-rw-r--r--drivers/s390/cio/qdio_thinint.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 981044c83864..c7c5512a892e 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -101,7 +101,6 @@ void tiqdio_add_input_queues(struct qdio_irq *irq_ptr)
101 list_add_rcu(&q->entry, &tiq_list); 101 list_add_rcu(&q->entry, &tiq_list);
102 mutex_unlock(&tiq_list_lock); 102 mutex_unlock(&tiq_list_lock);
103 xchg(irq_ptr->dsci, 1); 103 xchg(irq_ptr->dsci, 1);
104 tasklet_schedule(&tiqdio_tasklet);
105} 104}
106 105
107/* 106/*
@@ -159,7 +158,6 @@ static void __tiqdio_inbound_processing(struct qdio_q *q)
159 */ 158 */
160 qdio_check_outbound_after_thinint(q); 159 qdio_check_outbound_after_thinint(q);
161 160
162again:
163 if (!qdio_inbound_q_moved(q)) 161 if (!qdio_inbound_q_moved(q))
164 return; 162 return;
165 163
@@ -167,7 +165,8 @@ again:
167 165
168 if (!tiqdio_inbound_q_done(q)) { 166 if (!tiqdio_inbound_q_done(q)) {
169 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop); 167 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop);
170 goto again; 168 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED))
169 tasklet_schedule(&q->tasklet);
171 } 170 }
172 171
173 qdio_stop_polling(q); 172 qdio_stop_polling(q);
@@ -177,7 +176,8 @@ again:
177 */ 176 */
178 if (!tiqdio_inbound_q_done(q)) { 177 if (!tiqdio_inbound_q_done(q)) {
179 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop2); 178 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop2);
180 goto again; 179 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED))
180 tasklet_schedule(&q->tasklet);
181 } 181 }
182} 182}
183 183