| .. | .. |
|---|
| 1 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
|---|
| 2 | 2 | /* |
|---|
| 3 | | - * zcrypt 2.1.0 |
|---|
| 4 | | - * |
|---|
| 5 | 3 | * Copyright IBM Corp. 2001, 2012 |
|---|
| 6 | 4 | * Author(s): Robert Burroughs |
|---|
| 7 | 5 | * Eric Rossman (edrossma@us.ibm.com) |
|---|
| .. | .. |
|---|
| 43 | 41 | #define CEX3A_CLEANUP_TIME CEX2A_CLEANUP_TIME |
|---|
| 44 | 42 | |
|---|
| 45 | 43 | MODULE_AUTHOR("IBM Corporation"); |
|---|
| 46 | | -MODULE_DESCRIPTION("CEX2A Cryptographic Coprocessor device driver, " \ |
|---|
| 47 | | - "Copyright IBM Corp. 2001, 2012"); |
|---|
| 44 | +MODULE_DESCRIPTION("CEX2A/CEX3A Cryptographic Coprocessor device driver, " \ |
|---|
| 45 | + "Copyright IBM Corp. 2001, 2018"); |
|---|
| 48 | 46 | MODULE_LICENSE("GPL"); |
|---|
| 49 | 47 | |
|---|
| 50 | 48 | static struct ap_device_id zcrypt_cex2a_card_ids[] = { |
|---|
| .. | .. |
|---|
| 96 | 94 | if (ac->ap_dev.device_type == AP_DEVICE_TYPE_CEX2A) { |
|---|
| 97 | 95 | zc->min_mod_size = CEX2A_MIN_MOD_SIZE; |
|---|
| 98 | 96 | zc->max_mod_size = CEX2A_MAX_MOD_SIZE; |
|---|
| 99 | | - memcpy(zc->speed_rating, CEX2A_SPEED_IDX, |
|---|
| 100 | | - sizeof(CEX2A_SPEED_IDX)); |
|---|
| 97 | + zc->speed_rating = CEX2A_SPEED_IDX; |
|---|
| 101 | 98 | zc->max_exp_bit_length = CEX2A_MAX_MOD_SIZE; |
|---|
| 102 | 99 | zc->type_string = "CEX2A"; |
|---|
| 103 | 100 | zc->user_space_type = ZCRYPT_CEX2A; |
|---|
| .. | .. |
|---|
| 110 | 107 | zc->max_mod_size = CEX3A_MAX_MOD_SIZE; |
|---|
| 111 | 108 | zc->max_exp_bit_length = CEX3A_MAX_MOD_SIZE; |
|---|
| 112 | 109 | } |
|---|
| 113 | | - memcpy(zc->speed_rating, CEX3A_SPEED_IDX, |
|---|
| 114 | | - sizeof(CEX3A_SPEED_IDX)); |
|---|
| 110 | + zc->speed_rating = CEX3A_SPEED_IDX; |
|---|
| 115 | 111 | zc->type_string = "CEX3A"; |
|---|
| 116 | 112 | zc->user_space_type = ZCRYPT_CEX3A; |
|---|
| 117 | 113 | } else { |
|---|
| .. | .. |
|---|
| 177 | 173 | zq->queue = aq; |
|---|
| 178 | 174 | zq->online = 1; |
|---|
| 179 | 175 | atomic_set(&zq->load, 0); |
|---|
| 176 | + ap_queue_init_state(aq); |
|---|
| 180 | 177 | ap_queue_init_reply(aq, &zq->reply); |
|---|
| 181 | 178 | aq->request_timeout = CEX2A_CLEANUP_TIME, |
|---|
| 182 | 179 | aq->private = zq; |
|---|
| .. | .. |
|---|
| 205 | 202 | static struct ap_driver zcrypt_cex2a_queue_driver = { |
|---|
| 206 | 203 | .probe = zcrypt_cex2a_queue_probe, |
|---|
| 207 | 204 | .remove = zcrypt_cex2a_queue_remove, |
|---|
| 208 | | - .suspend = ap_queue_suspend, |
|---|
| 209 | | - .resume = ap_queue_resume, |
|---|
| 210 | 205 | .ids = zcrypt_cex2a_queue_ids, |
|---|
| 211 | 206 | .flags = AP_DRIVER_FLAG_DEFAULT, |
|---|
| 212 | 207 | }; |
|---|