s390/ism: clear dmbe_mask bit before SMC IRQ handling
SMC-D stress workload showed connection stalls. Since the firmware decides to skip raising an interrupt if the SBA DMBE mask bit is still set, this SBA DMBE mask bit should be cleared before the IRQ handling in the SMC code runs. Otherwise there are small windows possible with missing interrupts for incoming data. SMC-D currently does not care about the old value of the SBA DMBE mask. Acked-by: Sebastian Ott <sebott@linux.ibm.com> Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
db8ddde766
commit
007b656851
|
@ -415,9 +415,9 @@ static irqreturn_t ism_handle_irq(int irq, void *data)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
clear_bit_inv(bit, bv);
|
clear_bit_inv(bit, bv);
|
||||||
|
ism->sba->dmbe_mask[bit + ISM_DMB_BIT_OFFSET] = 0;
|
||||||
barrier();
|
barrier();
|
||||||
smcd_handle_irq(ism->smcd, bit + ISM_DMB_BIT_OFFSET);
|
smcd_handle_irq(ism->smcd, bit + ISM_DMB_BIT_OFFSET);
|
||||||
ism->sba->dmbe_mask[bit + ISM_DMB_BIT_OFFSET] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ism->sba->e) {
|
if (ism->sba->e) {
|
||||||
|
|
Loading…
Reference in New Issue