linux/drivers/s390/crypto
Harald Freudenberger d39fae45c9 s390/zcrypt: return EIO when msg retry limit reached
When a msg is retried because the lower ap layer returns -EAGAIN
there is a retry limit (currently 10). When this limit is reached
the last return code from the lower layer is returned, causing
the userspace to get -1 on the ioctl with errno EAGAIN.

This EAGAIN is misleading here. After 10 retry attempts the
userspace should receive a clear failure indication like EINVAL
or EIO or ENODEV. However, the reason why these retries all
fail is unclear. On an invalid message EINVAL would be returned
by the lower layer, and if devices go away or are not available
an ENODEV is seen. So this patch now reworks the retry loops
to return EIO to userspace when the retry limit is reached.

Fixes: 91ffc519c1 ("s390/zcrypt: introduce msg tracking in zcrypt functions")
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2021-02-09 15:57:04 +01:00
..
ap_bus.c s390/ap: let bus_register() add the AP bus sysfs attributes 2020-11-30 14:10:50 +01:00
ap_bus.h s390/ap: ap bus userspace notifications for some bus conditions 2020-11-09 11:21:00 +01: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/zcrypt/pkey: introduce zcrypt_wait_api_operational() function 2020-11-09 11:21:00 +01:00
vfio_ap_drv.c s390/zcrypt: CEX7S exploitation support 2019-09-19 12:56:06 +02:00
vfio_ap_ops.c s390/vfio: use fallthrough; 2020-03-25 12:39:38 +01:00
vfio_ap_private.h s390: ap: implement PAPQ AQIC interception in kernel 2019-07-02 16:00:28 +02:00
zcrypt_api.c s390/zcrypt: return EIO when msg retry limit reached 2021-02-09 15:57:04 +01:00
zcrypt_api.h s390/zcrypt/pkey: introduce zcrypt_wait_api_operational() function 2020-11-09 11:21:00 +01:00
zcrypt_card.c s390/ap: fix ap devices reference counting 2020-11-03 15:12:15 +01:00
zcrypt_cca_key.h s390/zcrypt: zcrypt device driver cleanup 2018-10-09 11:21:35 +02:00
zcrypt_ccamisc.c s390/crypto: improve retry logic in case of master key change 2021-01-27 13:00:48 +01: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: convert comma to semicolon 2020-12-16 14:55:50 +01: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: convert comma to semicolon 2020-12-16 14:55:50 +01:00
zcrypt_cex4.h
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/ap: fix ap devices reference counting 2020-11-03 15:12:15 +01:00