diff options
author | Holger Dengler <hd@linux.vnet.ibm.com> | 2012-07-02 06:39:59 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-07-16 04:53:38 -0400 |
commit | 8738e07d5c9b5b02f113c7e0ba67f0d8d6a5b23c (patch) | |
tree | 58f3ce1f7e6d22a02aa43bdaa07f28c4b997baa6 /drivers/s390 | |
parent | c960bec4fe5c58c288ea206061a40fbb0b28e768 (diff) |
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>
Diffstat (limited to 'drivers/s390')
-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 b987d4619586..fa5f05c643cb 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) | |||
338 | break; | 338 | break; |
339 | case AP_RESPONSE_RESET_IN_PROGRESS: | 339 | case AP_RESPONSE_RESET_IN_PROGRESS: |
340 | case AP_RESPONSE_BUSY: | 340 | case AP_RESPONSE_BUSY: |
341 | if (i < AP_MAX_RESET - 1) { | ||
342 | udelay(5); | ||
343 | status = ap_queue_interruption_control(qid, | ||
344 | ind); | ||
345 | continue; | ||
346 | } | ||
341 | break; | 347 | break; |
342 | case AP_RESPONSE_Q_NOT_AVAIL: | 348 | case AP_RESPONSE_Q_NOT_AVAIL: |
343 | case AP_RESPONSE_DECONFIGURED: | 349 | case AP_RESPONSE_DECONFIGURED: |