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>
This commit is contained in:
parent
1da1092dbf
commit
a8a4ee2740
@ -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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user