diff options
author | Holger Dengler <hd@linux.vnet.ibm.com> | 2012-07-02 12:39:59 +0200 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-07-16 10:53:38 +0200 |
commit | 8738e07d5c9b5b02f113c7e0ba67f0d8d6a5b23c (patch) | |
tree | 58f3ce1f7e6d22a02aa43bdaa07f28c4b997baa6 | |
parent | c960bec4fe5c58c288ea206061a40fbb0b28e768 (diff) | |
download | op-kernel-dev-8738e07d5c9b5b02f113c7e0ba67f0d8d6a5b23c.zip op-kernel-dev-8738e07d5c9b5b02f113c7e0ba67f0d8d6a5b23c.tar.gz |
s390/ap: resend enable adapter interrupt request.
The adapter interrupt for an APQN must be re-enabled after a reset.
This patch sends the interrupt enablement request again, if the APQN
is busy or the reset is still in progress.
Signed-off-by: Holger Dengler <hd@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | drivers/s390/crypto/ap_bus.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index b987d46..fa5f05c 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c @@ -338,6 +338,12 @@ static int ap_queue_enable_interruption(ap_qid_t qid, void *ind) break; case AP_RESPONSE_RESET_IN_PROGRESS: case AP_RESPONSE_BUSY: + if (i < AP_MAX_RESET - 1) { + udelay(5); + status = ap_queue_interruption_control(qid, + ind); + continue; + } break; case AP_RESPONSE_Q_NOT_AVAIL: case AP_RESPONSE_DECONFIGURED: |