mirror of https://gitee.com/openkylin/linux.git
s390/qdio: inline qdio_kick_handler()
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>
This commit is contained in:
parent
7ef37dd7bb
commit
3bf526e036
|
@ -146,7 +146,6 @@ struct qdio_dev_perf_stat {
|
||||||
unsigned int siga_sync;
|
unsigned int siga_sync;
|
||||||
|
|
||||||
unsigned int inbound_call;
|
unsigned int inbound_call;
|
||||||
unsigned int inbound_handler;
|
|
||||||
unsigned int stop_polling;
|
unsigned int stop_polling;
|
||||||
unsigned int inbound_queue_full;
|
unsigned int inbound_queue_full;
|
||||||
unsigned int outbound_call;
|
unsigned int outbound_call;
|
||||||
|
|
|
@ -203,7 +203,6 @@ static char *qperf_names[] = {
|
||||||
"SIGA write",
|
"SIGA write",
|
||||||
"SIGA sync",
|
"SIGA sync",
|
||||||
"Inbound calls",
|
"Inbound calls",
|
||||||
"Inbound handler",
|
|
||||||
"Inbound stop_polling",
|
"Inbound stop_polling",
|
||||||
"Inbound queue full",
|
"Inbound queue full",
|
||||||
"Outbound calls",
|
"Outbound calls",
|
||||||
|
|
|
@ -545,28 +545,6 @@ static inline unsigned long qdio_aob_for_buffer(struct qdio_output_q *q,
|
||||||
return phys_aob;
|
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)
|
static inline int qdio_tasklet_schedule(struct qdio_q *q)
|
||||||
{
|
{
|
||||||
if (likely(q->irq_ptr->state == QDIO_IRQ_STATE_ACTIVE)) {
|
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);
|
count = qdio_outbound_q_moved(q, start);
|
||||||
if (count) {
|
if (count) {
|
||||||
q->first_to_check = add_buf(start, 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) &&
|
if (queue_type(q) == QDIO_ZFCP_QFMT && !pci_out_supported(q->irq_ptr) &&
|
||||||
|
|
Loading…
Reference in New Issue