s390/qdio: inline qdio_kick_handler()
authorJulian Wiedmann <jwi@linux.ibm.com>
Sat, 30 Jan 2021 11:28:30 +0000 (12:28 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 13 Feb 2021 16:17:55 +0000 (17:17 +0100)
We don't kick the handler for Input Queues anymore. Move the remaining
code into its only caller.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_debug.c
drivers/s390/cio/qdio_main.c

index da29c3729cd907bfac9109f3ee79278c31e45452..84425e294e36b9fe6cdc5fc18c4ab803c4f38a16 100644 (file)
@@ -146,7 +146,6 @@ struct qdio_dev_perf_stat {
        unsigned int siga_sync;
 
        unsigned int inbound_call;
-       unsigned int inbound_handler;
        unsigned int stop_polling;
        unsigned int inbound_queue_full;
        unsigned int outbound_call;
index d091ae12c367a5cf39d54fd581eab324ceb675e2..00384f58f218f34c3c592737234d495ae05a75b9 100644 (file)
@@ -203,7 +203,6 @@ static char *qperf_names[] = {
        "SIGA write",
        "SIGA sync",
        "Inbound calls",
-       "Inbound handler",
        "Inbound stop_polling",
        "Inbound queue full",
        "Outbound calls",
index c56b690f0a93e61326d84c76e725307dfdcbc175..a83101d9ec4aab00057a0a5a2635a61895edf342 100644 (file)
@@ -545,28 +545,6 @@ static inline unsigned long qdio_aob_for_buffer(struct qdio_output_q *q,
        return phys_aob;
 }
 
-static void qdio_kick_handler(struct qdio_q *q, unsigned int start,
-                             unsigned int count)
-{
-       if (unlikely(q->irq_ptr->state != QDIO_IRQ_STATE_ACTIVE))
-               return;
-
-       if (q->is_input_q) {
-               qperf_inc(q, inbound_handler);
-               DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count);
-       } else {
-               qperf_inc(q, outbound_handler);
-               DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x",
-                             start, count);
-       }
-
-       q->handler(q->irq_ptr->cdev, q->qdio_error, q->nr, start, count,
-                  q->irq_ptr->int_parm);
-
-       /* for the next time */
-       q->qdio_error = 0;
-}
-
 static inline int qdio_tasklet_schedule(struct qdio_q *q)
 {
        if (likely(q->irq_ptr->state == QDIO_IRQ_STATE_ACTIVE)) {
@@ -729,7 +707,18 @@ void qdio_outbound_tasklet(struct tasklet_struct *t)
        count = qdio_outbound_q_moved(q, start);
        if (count) {
                q->first_to_check = add_buf(start, count);
-               qdio_kick_handler(q, start, count);
+
+               if (q->irq_ptr->state == QDIO_IRQ_STATE_ACTIVE) {
+                       qperf_inc(q, outbound_handler);
+                       DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x",
+                                     start, count);
+
+                       q->handler(q->irq_ptr->cdev, q->qdio_error, q->nr,
+                                  start, count, q->irq_ptr->int_parm);
+
+                       /* for the next time */
+                       q->qdio_error = 0;
+               }
        }
 
        if (queue_type(q) == QDIO_ZFCP_QFMT && !pci_out_supported(q->irq_ptr) &&