diff options
author | Felix Beck <felix.beck@de.ibm.com> | 2009-12-07 12:51:55 +0100 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2009-12-07 12:51:35 +0100 |
commit | a6a5d73a56540b5e59dff83bc8f2b2725591346a (patch) | |
tree | 84a293aa41b9326cebcc38afc069d839b76da2f7 /drivers/s390/crypto/ap_bus.h | |
parent | 468ffddf19c1417947cac931c240b0d600e4b5bf (diff) | |
download | linux-3.10-a6a5d73a56540b5e59dff83bc8f2b2725591346a.tar.gz linux-3.10-a6a5d73a56540b5e59dff83bc8f2b2725591346a.tar.bz2 linux-3.10-a6a5d73a56540b5e59dff83bc8f2b2725591346a.zip |
[S390] zcrypt: special command support for cex3 exploitation
Support for special command is implemented in the AP Bus in the NQAP
function __ap_send. This is extended for a further parameter special.
When set, the special bit, in GR0 will be set. Therefor the ap_message
struct is extended for a further bit. Thus calling functions of
__ap_send can use the special parameter in ap_message to give to
__ap_send. Affected is in the first place ap_queue_message, which is
called by the actual card driver. The second part of this support is
that the card driver for the CEX3C needs to set this special bit, when
an according CPRB is sent to the driver.
Signed-off-by: Felix Beck <felix.beck@de.ibm.com>
Signed-off-by: Ralph Wuerthner <ralph.wuerthner@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 | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/s390/crypto/ap_bus.h b/drivers/s390/crypto/ap_bus.h index fcf2497556d..c37466713b3 100644 --- a/drivers/s390/crypto/ap_bus.h +++ b/drivers/s390/crypto/ap_bus.h @@ -87,6 +87,7 @@ struct ap_queue_status { #define AP_RESPONSE_INDEX_TOO_BIG 0x11 #define AP_RESPONSE_NO_FIRST_PART 0x13 #define AP_RESPONSE_MESSAGE_TOO_BIG 0x15 +#define AP_RESPONSE_REQ_FAC_NOT_INST 0x16 /* * Known device types @@ -161,6 +162,7 @@ struct ap_message { size_t length; /* Message length. */ void *private; /* ap driver private pointer. */ + unsigned int special:1; /* Used for special commands. */ }; #define AP_DEVICE(dt) \ @@ -176,6 +178,7 @@ static inline void ap_init_message(struct ap_message *ap_msg) { ap_msg->psmid = 0; ap_msg->length = 0; + ap_msg->special = 0; } /* |