linux/drivers/s390/crypto
Harald Freudenberger 026499a9c2 s390/zcrypt: fix zcard and zqueue hot-unplug memleak
commit 70fac8088c upstream.

Tests with kvm and a kmemdebug kernel showed, that on hot unplug the
zcard and zqueue structs for the unplugged card or queue are not
properly freed because of a mismatch with get/put for the embedded
kref counter.

This fix now adjusts the handling of the kref counters. With init the
kref counter starts with 1. This initial value needs to drop to zero
with the unregister of the card or queue to trigger the release and
free the object.

Fixes: 29c2680fd2 ("s390/ap: fix ap devices reference counting")
Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Cc: stable@vger.kernel.org
Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2021-05-11 14:47:11 +02:00
..
ap_bus.c s390/ap: fix ap devices reference counting 2020-11-03 15:12:15 +01:00
ap_bus.h s390/zcrypt: Introduce Failure Injection feature 2020-10-07 21:50:01 +02:00
ap_card.c s390/ap: Support AP card SCLP config and deconfig operations 2020-10-07 21:50:01 +02:00
ap_debug.h s390/ap: add error response code field for ap queue devices 2020-10-07 21:50:00 +02:00
ap_queue.c s390/zcrypt: fix wrong format specifications 2020-10-09 23:45:30 +02:00
Makefile s390/zcrypt: add new low level ep11 functions support file 2020-01-30 13:07:55 +01:00
pkey_api.c s390/pkey: fix paes selftest failure with paes and pkey static build 2020-11-03 15:12:16 +01:00
vfio_ap_drv.c s390/vfio-ap: No need to disable IRQ after queue reset 2021-02-03 23:28:39 +01:00
vfio_ap_ops.c s390/crypto: return -EFAULT if copy_to_user() fails 2021-03-17 17:06:19 +01:00
vfio_ap_private.h s390/vfio-ap: No need to disable IRQ after queue reset 2021-02-03 23:28:39 +01:00
zcrypt_api.c s390/zcrypt: return EIO when msg retry limit reached 2021-03-04 11:37:48 +01:00
zcrypt_api.h s390/zcrypt: Introduce Failure Injection feature 2020-10-07 21:50:01 +02:00
zcrypt_card.c s390/zcrypt: fix zcard and zqueue hot-unplug memleak 2021-05-11 14:47:11 +02:00
zcrypt_cca_key.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_ccamisc.c s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
zcrypt_ccamisc.h s390/pkey: support CCA and EP11 secure ECC private keys 2020-09-24 10:03:28 +02:00
zcrypt_cex2a.c s390/zcrypt: introduce msg tracking in zcrypt functions 2020-10-07 21:49:59 +02:00
zcrypt_cex2a.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_cex2c.c s390/zcrypt: introduce msg tracking in zcrypt functions 2020-10-07 21:49:59 +02:00
zcrypt_cex2c.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_cex4.c s390/zcrypt: introduce msg tracking in zcrypt functions 2020-10-07 21:49:59 +02:00
zcrypt_cex4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zcrypt_debug.h s390/ap/zcrypt: revisit ap and zcrypt error handling 2020-10-07 21:50:01 +02:00
zcrypt_ep11misc.c s390/pkey: support CCA and EP11 secure ECC private keys 2020-09-24 10:03:28 +02:00
zcrypt_ep11misc.h s390/pkey: support CCA and EP11 secure ECC private keys 2020-09-24 10:03:28 +02:00
zcrypt_error.h s390/ap/zcrypt: revisit ap and zcrypt error handling 2020-10-07 21:50:01 +02:00
zcrypt_msgtype6.c s390/zcrypt: Introduce Failure Injection feature 2020-10-07 21:50:01 +02:00
zcrypt_msgtype6.h s390/zcrypt: remove set_fs() invocation in zcrypt device driver 2020-09-17 14:11:03 +02:00
zcrypt_msgtype50.c s390/zcrypt: Introduce Failure Injection feature 2020-10-07 21:50:01 +02:00
zcrypt_msgtype50.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_queue.c s390/zcrypt: fix zcard and zqueue hot-unplug memleak 2021-05-11 14:47:11 +02:00