aboutsummaryrefslogtreecommitdiff
path: root/drivers/s390
diff options
context:
space:
mode:
authorJulian Wiedmann2020-03-20 14:00:00 +0100
committerVasily Gorbik2020-04-06 13:13:50 +0200
commita8a4ee2740bb6224271f06742884ec375c42cb9e (patch)
treea5d253ea15fb58c460bfa8dd8c61e2ab08eec099 /drivers/s390
parent1da1092dbf61a0c0aab02048232f5e9fcab15861 (diff)
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: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/qdio_thinint.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index ea09df7209f0..c78c8dd18a89 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -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;
}
-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)
{
if (!is_thinint_irq(irq_ptr))
return;
- if (shared_ind(irq_ptr))
+ if (references_shared_dsci(irq_ptr) ||
+ has_multiple_inq_on_dsci(irq_ptr))
return;
xchg(irq_ptr->dsci, 0);
}
@@ -111,7 +106,8 @@ int test_nonshared_ind(struct qdio_irq *irq_ptr)
{
if (!is_thinint_irq(irq_ptr))
return 0;
- if (shared_ind(irq_ptr))
+ if (references_shared_dsci(irq_ptr) ||
+ has_multiple_inq_on_dsci(irq_ptr))
return 0;
if (*irq_ptr->dsci)
return 1;
@@ -144,10 +140,11 @@ static inline void tiqdio_call_inq_handlers(struct qdio_irq *irq)
return;
}
- for_each_input_queue(irq, q, i) {
- if (!shared_ind(irq))
- xchg(irq->dsci, 0);
+ if (!references_shared_dsci(irq) &&
+ !has_multiple_inq_on_dsci(irq))
+ xchg(irq->dsci, 0);
+ for_each_input_queue(irq, q, i) {
/*
* Call inbound processing but not directly
* since that could starve other thinint queues.