Commit a8a4ee27 authored by Julian Wiedmann's avatar Julian Wiedmann Committed by Vasily Gorbik

s390/qdio: inline shared_ind()

This is just prep work for a subsequent patch, no functional change.

For the non-polling path we can pull the code chunk in front of the
for-loop, since it only evaluates to true for a 1-queue configuration.
Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 1da1092d
...@@ -92,17 +92,12 @@ static inline int references_shared_dsci(struct qdio_irq *irq_ptr) ...@@ -92,17 +92,12 @@ static inline int references_shared_dsci(struct qdio_irq *irq_ptr)
return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind; return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind;
} }
static inline int shared_ind(struct qdio_irq *irq_ptr)
{
return references_shared_dsci(irq_ptr) ||
has_multiple_inq_on_dsci(irq_ptr);
}
void clear_nonshared_ind(struct qdio_irq *irq_ptr) void clear_nonshared_ind(struct qdio_irq *irq_ptr)
{ {
if (!is_thinint_irq(irq_ptr)) if (!is_thinint_irq(irq_ptr))
return; return;
if (shared_ind(irq_ptr)) if (references_shared_dsci(irq_ptr) ||
has_multiple_inq_on_dsci(irq_ptr))
return; return;
xchg(irq_ptr->dsci, 0); xchg(irq_ptr->dsci, 0);
} }
...@@ -111,7 +106,8 @@ int test_nonshared_ind(struct qdio_irq *irq_ptr) ...@@ -111,7 +106,8 @@ int test_nonshared_ind(struct qdio_irq *irq_ptr)
{ {
if (!is_thinint_irq(irq_ptr)) if (!is_thinint_irq(irq_ptr))
return 0; return 0;
if (shared_ind(irq_ptr)) if (references_shared_dsci(irq_ptr) ||
has_multiple_inq_on_dsci(irq_ptr))
return 0; return 0;
if (*irq_ptr->dsci) if (*irq_ptr->dsci)
return 1; return 1;
...@@ -144,10 +140,11 @@ static inline void tiqdio_call_inq_handlers(struct qdio_irq *irq) ...@@ -144,10 +140,11 @@ static inline void tiqdio_call_inq_handlers(struct qdio_irq *irq)
return; return;
} }
for_each_input_queue(irq, q, i) { if (!references_shared_dsci(irq) &&
if (!shared_ind(irq)) !has_multiple_inq_on_dsci(irq))
xchg(irq->dsci, 0); xchg(irq->dsci, 0);
for_each_input_queue(irq, q, i) {
/* /*
* Call inbound processing but not directly * Call inbound processing but not directly
* since that could starve other thinint queues. * since that could starve other thinint queues.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment