diff options
Diffstat (limited to 'drivers/s390/crypto')
-rw-r--r-- | drivers/s390/crypto/ap_bus.c | 5 | ||||
-rw-r--r-- | drivers/s390/crypto/zcrypt_mono.c | 4 | ||||
-rw-r--r-- | drivers/s390/crypto/zcrypt_pcixcc.c | 9 | ||||
-rw-r--r-- | drivers/s390/crypto/zcrypt_pcixcc.h | 45 |
4 files changed, 11 insertions, 52 deletions
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index e99713041591..67aaff3e668d 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c | |||
@@ -1225,8 +1225,9 @@ static void ap_reset_domain(void) | |||
1225 | { | 1225 | { |
1226 | int i; | 1226 | int i; |
1227 | 1227 | ||
1228 | for (i = 0; i < AP_DEVICES; i++) | 1228 | if (ap_domain_index != -1) |
1229 | ap_reset_queue(AP_MKQID(i, ap_domain_index)); | 1229 | for (i = 0; i < AP_DEVICES; i++) |
1230 | ap_reset_queue(AP_MKQID(i, ap_domain_index)); | ||
1230 | } | 1231 | } |
1231 | 1232 | ||
1232 | static void ap_reset_all(void) | 1233 | static void ap_reset_all(void) |
diff --git a/drivers/s390/crypto/zcrypt_mono.c b/drivers/s390/crypto/zcrypt_mono.c index 2a9349ad68b7..44253fdd4136 100644 --- a/drivers/s390/crypto/zcrypt_mono.c +++ b/drivers/s390/crypto/zcrypt_mono.c | |||
@@ -45,7 +45,7 @@ | |||
45 | /** | 45 | /** |
46 | * The module initialization code. | 46 | * The module initialization code. |
47 | */ | 47 | */ |
48 | int __init zcrypt_init(void) | 48 | static int __init zcrypt_init(void) |
49 | { | 49 | { |
50 | int rc; | 50 | int rc; |
51 | 51 | ||
@@ -86,7 +86,7 @@ out: | |||
86 | /** | 86 | /** |
87 | * The module termination code. | 87 | * The module termination code. |
88 | */ | 88 | */ |
89 | void __exit zcrypt_exit(void) | 89 | static void __exit zcrypt_exit(void) |
90 | { | 90 | { |
91 | zcrypt_cex2a_exit(); | 91 | zcrypt_cex2a_exit(); |
92 | zcrypt_pcixcc_exit(); | 92 | zcrypt_pcixcc_exit(); |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.c b/drivers/s390/crypto/zcrypt_pcixcc.c index 64948788d301..70b9ddc8cf9d 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.c +++ b/drivers/s390/crypto/zcrypt_pcixcc.c | |||
@@ -277,7 +277,7 @@ static int XCRB_msg_to_type6CPRB_msgX(struct zcrypt_device *zdev, | |||
277 | }; | 277 | }; |
278 | struct { | 278 | struct { |
279 | struct type6_hdr hdr; | 279 | struct type6_hdr hdr; |
280 | struct ica_CPRBX cprbx; | 280 | struct CPRBX cprbx; |
281 | } __attribute__((packed)) *msg = ap_msg->message; | 281 | } __attribute__((packed)) *msg = ap_msg->message; |
282 | 282 | ||
283 | int rcblen = CEIL4(xcRB->request_control_blk_length); | 283 | int rcblen = CEIL4(xcRB->request_control_blk_length); |
@@ -432,14 +432,17 @@ static int convert_type86_ica(struct zcrypt_device *zdev, | |||
432 | } | 432 | } |
433 | if (service_rc == 8 && service_rs == 770) { | 433 | if (service_rc == 8 && service_rs == 770) { |
434 | PDEBUG("Invalid key length on PCIXCC/CEX2C\n"); | 434 | PDEBUG("Invalid key length on PCIXCC/CEX2C\n"); |
435 | zdev->min_mod_size = PCIXCC_MIN_MOD_SIZE_OLD; | 435 | return -EINVAL; |
436 | return -EAGAIN; | ||
437 | } | 436 | } |
438 | if (service_rc == 8 && service_rs == 783) { | 437 | if (service_rc == 8 && service_rs == 783) { |
439 | PDEBUG("Extended bitlengths not enabled on PCIXCC/CEX2C\n"); | 438 | PDEBUG("Extended bitlengths not enabled on PCIXCC/CEX2C\n"); |
440 | zdev->min_mod_size = PCIXCC_MIN_MOD_SIZE_OLD; | 439 | zdev->min_mod_size = PCIXCC_MIN_MOD_SIZE_OLD; |
441 | return -EAGAIN; | 440 | return -EAGAIN; |
442 | } | 441 | } |
442 | if (service_rc == 12 && service_rs == 769) { | ||
443 | PDEBUG("Invalid key on PCIXCC/CEX2C\n"); | ||
444 | return -EINVAL; | ||
445 | } | ||
443 | PRINTK("Unknown service rc/rs (PCIXCC/CEX2C): %d/%d\n", | 446 | PRINTK("Unknown service rc/rs (PCIXCC/CEX2C): %d/%d\n", |
444 | service_rc, service_rs); | 447 | service_rc, service_rs); |
445 | zdev->online = 0; | 448 | zdev->online = 0; |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.h b/drivers/s390/crypto/zcrypt_pcixcc.h index a78ff307fd19..8cb7d7a6973b 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.h +++ b/drivers/s390/crypto/zcrypt_pcixcc.h | |||
@@ -28,51 +28,6 @@ | |||
28 | #ifndef _ZCRYPT_PCIXCC_H_ | 28 | #ifndef _ZCRYPT_PCIXCC_H_ |
29 | #define _ZCRYPT_PCIXCC_H_ | 29 | #define _ZCRYPT_PCIXCC_H_ |
30 | 30 | ||
31 | /** | ||
32 | * CPRBX | ||
33 | * Note that all shorts and ints are big-endian. | ||
34 | * All pointer fields are 16 bytes long, and mean nothing. | ||
35 | * | ||
36 | * A request CPRB is followed by a request_parameter_block. | ||
37 | * | ||
38 | * The request (or reply) parameter block is organized thus: | ||
39 | * function code | ||
40 | * VUD block | ||
41 | * key block | ||
42 | */ | ||
43 | struct CPRBX { | ||
44 | unsigned short cprb_len; /* CPRB length 220 */ | ||
45 | unsigned char cprb_ver_id; /* CPRB version id. 0x02 */ | ||
46 | unsigned char pad_000[3]; /* Alignment pad bytes */ | ||
47 | unsigned char func_id[2]; /* function id 0x5432 */ | ||
48 | unsigned char cprb_flags[4]; /* Flags */ | ||
49 | unsigned int req_parml; /* request parameter buffer len */ | ||
50 | unsigned int req_datal; /* request data buffer */ | ||
51 | unsigned int rpl_msgbl; /* reply message block length */ | ||
52 | unsigned int rpld_parml; /* replied parameter block len */ | ||
53 | unsigned int rpl_datal; /* reply data block len */ | ||
54 | unsigned int rpld_datal; /* replied data block len */ | ||
55 | unsigned int req_extbl; /* request extension block len */ | ||
56 | unsigned char pad_001[4]; /* reserved */ | ||
57 | unsigned int rpld_extbl; /* replied extension block len */ | ||
58 | unsigned char req_parmb[16]; /* request parm block 'address' */ | ||
59 | unsigned char req_datab[16]; /* request data block 'address' */ | ||
60 | unsigned char rpl_parmb[16]; /* reply parm block 'address' */ | ||
61 | unsigned char rpl_datab[16]; /* reply data block 'address' */ | ||
62 | unsigned char req_extb[16]; /* request extension block 'addr'*/ | ||
63 | unsigned char rpl_extb[16]; /* reply extension block 'addres'*/ | ||
64 | unsigned short ccp_rtcode; /* server return code */ | ||
65 | unsigned short ccp_rscode; /* server reason code */ | ||
66 | unsigned int mac_data_len; /* Mac Data Length */ | ||
67 | unsigned char logon_id[8]; /* Logon Identifier */ | ||
68 | unsigned char mac_value[8]; /* Mac Value */ | ||
69 | unsigned char mac_content_flgs;/* Mac content flag byte */ | ||
70 | unsigned char pad_002; /* Alignment */ | ||
71 | unsigned short domain; /* Domain */ | ||
72 | unsigned char pad_003[12]; /* Domain masks */ | ||
73 | unsigned char pad_004[36]; /* reserved */ | ||
74 | } __attribute__((packed)); | ||
75 | |||
76 | int zcrypt_pcixcc_init(void); | 31 | int zcrypt_pcixcc_init(void); |
77 | void zcrypt_pcixcc_exit(void); | 32 | void zcrypt_pcixcc_exit(void); |
78 | 33 | ||