summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Dengler <hd@linux.vnet.ibm.com>2012-07-02 12:39:59 +0200
committerHeiko Carstens <heiko.carstens@de.ibm.com>2012-07-16 10:53:38 +0200
commit8738e07d5c9b5b02f113c7e0ba67f0d8d6a5b23c (patch)
tree58f3ce1f7e6d22a02aa43bdaa07f28c4b997baa6
parentc960bec4fe5c58c288ea206061a40fbb0b28e768 (diff)
downloadop-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.c6
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:
OpenPOWER on IntegriCloud