diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2017-06-21 10:07:52 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-06-21 10:07:52 +0300 |
commit | f0cd9ae5d0df8668e76359a3e0e99856aa9c53b9 (patch) | |
tree | 84d3297b16fa7e373f2eabef56cd12ae5a9b8a29 /drivers/s390/crypto/ap_card.c | |
parent | 098b0e01a91c42aaaf0425605cd126b03fcb0bcf (diff) | |
parent | 8e6cec1c7c5afa489687c90be15d6ed82c742975 (diff) | |
download | linux-f0cd9ae5d0df8668e76359a3e0e99856aa9c53b9.tar.xz |
Merge branch 'timers/urgent' into timers/core
Pick up dependent changes.
Diffstat (limited to 'drivers/s390/crypto/ap_card.c')
-rw-r--r-- | drivers/s390/crypto/ap_card.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/s390/crypto/ap_card.c b/drivers/s390/crypto/ap_card.c index cfa161ccc74e..836efac96813 100644 --- a/drivers/s390/crypto/ap_card.c +++ b/drivers/s390/crypto/ap_card.c @@ -160,7 +160,14 @@ static struct device_type ap_card_type = { static void ap_card_device_release(struct device *dev) { - kfree(to_ap_card(dev)); + struct ap_card *ac = to_ap_card(dev); + + if (!list_empty(&ac->list)) { + spin_lock_bh(&ap_list_lock); + list_del_init(&ac->list); + spin_unlock_bh(&ap_list_lock); + } + kfree(ac); } struct ap_card *ap_card_create(int id, int queue_depth, int device_type, |