OSDN Git Service

s390/zcrypt: handle new reply code FILTERED_BY_HYPERVISOR
authorHarald Freudenberger <freude@linux.ibm.com>
Wed, 20 Nov 2019 10:44:31 +0000 (11:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 Jan 2020 18:13:14 +0000 (19:13 +0100)
[ Upstream commit 6733775a92eacd612ac88afa0fd922e4ffeb2bc7 ]

This patch introduces support for a new architectured reply
code 0x8B indicating that a hypervisor layer (if any) has
rejected an ap message.

Linux may run as a guest on top of a hypervisor like zVM
or KVM. So the crypto hardware seen by the ap bus may be
restricted by the hypervisor for example only a subset like
only clear key crypto requests may be supported. Other
requests will be filtered out - rejected by the hypervisor.
The new reply code 0x8B will appear in such cases and needs
to get recognized by the ap bus and zcrypt device driver zoo.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/s390/crypto/zcrypt_error.h

index 2e1a27b..2126f4c 100644 (file)
@@ -62,6 +62,7 @@ struct error_hdr {
 #define REP82_ERROR_EVEN_MOD_IN_OPND       0x85
 #define REP82_ERROR_RESERVED_FIELD         0x88
 #define REP82_ERROR_INVALID_DOMAIN_PENDING  0x8A
+#define REP82_ERROR_FILTERED_BY_HYPERVISOR  0x8B
 #define REP82_ERROR_TRANSPORT_FAIL         0x90
 #define REP82_ERROR_PACKET_TRUNCATED       0xA0
 #define REP82_ERROR_ZERO_BUFFER_LEN        0xB0
@@ -92,6 +93,7 @@ static inline int convert_error(struct zcrypt_queue *zq,
        case REP82_ERROR_INVALID_DOMAIN_PRECHECK:
        case REP82_ERROR_INVALID_DOMAIN_PENDING:
        case REP82_ERROR_INVALID_SPECIAL_CMD:
+       case REP82_ERROR_FILTERED_BY_HYPERVISOR:
        //   REP88_ERROR_INVALID_KEY            // '82' CEX2A
        //   REP88_ERROR_OPERAND                // '84' CEX2A
        //   REP88_ERROR_OPERAND_EVEN_MOD       // '85' CEX2A