diff options
author | Ralph Wuerthner <rwuerthn@de.ibm.com> | 2007-03-19 15:19:14 +0300 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-03-19 15:19:14 +0300 |
commit | cf352ce0b9104dc6a1c11df52db9f910f1f6cd2e (patch) | |
tree | 166082c005e653747eea14d2a761119d8425decb /drivers/s390/crypto/ap_bus.h | |
parent | fb1c171992041e1d4bfb8c010548fa97f2106827 (diff) | |
download | linux-cf352ce0b9104dc6a1c11df52db9f910f1f6cd2e.tar.xz |
[S390] zcrypt: fix possible dead lock in AP bus module
AP bus module uses bus_for_each_dev() in software interrupt context to
poll for completed requests which might cause dead locks. Solution: use
private AP device list for polling in software interrupt context.
Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/crypto/ap_bus.h')
-rw-r--r-- | drivers/s390/crypto/ap_bus.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/s390/crypto/ap_bus.h b/drivers/s390/crypto/ap_bus.h index 83b69c01cd6e..008559ea742b 100644 --- a/drivers/s390/crypto/ap_bus.h +++ b/drivers/s390/crypto/ap_bus.h @@ -106,6 +106,7 @@ struct ap_device { struct device device; struct ap_driver *drv; /* Pointer to AP device driver. */ spinlock_t lock; /* Per device lock. */ + struct list_head list; /* private list of all AP devices. */ ap_qid_t qid; /* AP queue id. */ int queue_depth; /* AP queue depth.*/ |