diff options
| author | Felix Beck <felix.beck@de.ibm.com> | 2008-04-17 01:46:28 -0400 |
|---|---|---|
| committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-04-17 01:47:06 -0400 |
| commit | 1749a81d629b1295b38071914728cc2e72066f4d (patch) | |
| tree | 8918ddaa31fe27bb385fd70b8bd03cc6dbb9782a /drivers/s390/crypto | |
| parent | 3f12ebce6a004c8e9bf639801842f67e578ee7c6 (diff) | |
[S390] zcrypt: Comments and kernel-doc cleanup
Comments, which suggested to be kernel-doc but were not in the right
formatting, have been corrected. Additionally some minor cleanup in
the comments has been done.
Signed-off-by: Felix Beck <felix.beck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'drivers/s390/crypto')
| -rw-r--r-- | drivers/s390/crypto/ap_bus.c | 189 | ||||
| -rw-r--r-- | drivers/s390/crypto/ap_bus.h | 15 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_api.c | 63 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_cca_key.h | 4 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_error.h | 2 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_pcicc.c | 4 | ||||
| -rw-r--r-- | drivers/s390/crypto/zcrypt_pcixcc.c | 2 |
7 files changed, 184 insertions, 95 deletions
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index 7b0b81901297..a1ab3e3efd11 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c | |||
| @@ -45,7 +45,7 @@ static int ap_poll_thread_start(void); | |||
| 45 | static void ap_poll_thread_stop(void); | 45 | static void ap_poll_thread_stop(void); |
| 46 | static void ap_request_timeout(unsigned long); | 46 | static void ap_request_timeout(unsigned long); |
| 47 | 47 | ||
| 48 | /** | 48 | /* |
| 49 | * Module description. | 49 | * Module description. |
| 50 | */ | 50 | */ |
| 51 | MODULE_AUTHOR("IBM Corporation"); | 51 | MODULE_AUTHOR("IBM Corporation"); |
| @@ -53,7 +53,7 @@ MODULE_DESCRIPTION("Adjunct Processor Bus driver, " | |||
| 53 | "Copyright 2006 IBM Corporation"); | 53 | "Copyright 2006 IBM Corporation"); |
| 54 | MODULE_LICENSE("GPL"); | 54 | MODULE_LICENSE("GPL"); |
| 55 | 55 | ||
| 56 | /** | 56 | /* |
| 57 | * Module parameter | 57 | * Module parameter |
| 58 | */ | 58 | */ |
| 59 | int ap_domain_index = -1; /* Adjunct Processor Domain Index */ | 59 | int ap_domain_index = -1; /* Adjunct Processor Domain Index */ |
| @@ -69,7 +69,7 @@ static struct device *ap_root_device = NULL; | |||
| 69 | static DEFINE_SPINLOCK(ap_device_lock); | 69 | static DEFINE_SPINLOCK(ap_device_lock); |
| 70 | static LIST_HEAD(ap_device_list); | 70 | static LIST_HEAD(ap_device_list); |
| 71 | 71 | ||
| 72 | /** | 72 | /* |
| 73 | * Workqueue & timer for bus rescan. | 73 | * Workqueue & timer for bus rescan. |
| 74 | */ | 74 | */ |
| 75 | static struct workqueue_struct *ap_work_queue; | 75 | static struct workqueue_struct *ap_work_queue; |
| @@ -77,7 +77,7 @@ static struct timer_list ap_config_timer; | |||
| 77 | static int ap_config_time = AP_CONFIG_TIME; | 77 | static int ap_config_time = AP_CONFIG_TIME; |
| 78 | static DECLARE_WORK(ap_config_work, ap_scan_bus); | 78 | static DECLARE_WORK(ap_config_work, ap_scan_bus); |
| 79 | 79 | ||
| 80 | /** | 80 | /* |
| 81 | * Tasklet & timer for AP request polling. | 81 | * Tasklet & timer for AP request polling. |
| 82 | */ | 82 | */ |
| 83 | static struct timer_list ap_poll_timer = TIMER_INITIALIZER(ap_poll_timeout,0,0); | 83 | static struct timer_list ap_poll_timer = TIMER_INITIALIZER(ap_poll_timeout,0,0); |
| @@ -88,9 +88,9 @@ static struct task_struct *ap_poll_kthread = NULL; | |||
| 88 | static DEFINE_MUTEX(ap_poll_thread_mutex); | 88 | static DEFINE_MUTEX(ap_poll_thread_mutex); |
| 89 | 89 | ||
| 90 | /** | 90 | /** |
| 91 | * Test if ap instructions are available. | 91 | * ap_intructions_available() - Test if AP instructions are available. |
| 92 | * | 92 | * |
| 93 | * Returns 0 if the ap instructions are installed. | 93 | * Returns 0 if the AP instructions are installed. |
| 94 | */ | 94 | */ |
| 95 | static inline int ap_instructions_available(void) | 95 | static inline int ap_instructions_available(void) |
| 96 | { | 96 | { |
| @@ -108,12 +108,12 @@ static inline int ap_instructions_available(void) | |||
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | /** | 110 | /** |
| 111 | * Test adjunct processor queue. | 111 | * ap_test_queue(): Test adjunct processor queue. |
| 112 | * @qid: the ap queue number | 112 | * @qid: The AP queue number |
| 113 | * @queue_depth: pointer to queue depth value | 113 | * @queue_depth: Pointer to queue depth value |
| 114 | * @device_type: pointer to device type value | 114 | * @device_type: Pointer to device type value |
| 115 | * | 115 | * |
| 116 | * Returns ap queue status structure. | 116 | * Returns AP queue status structure. |
| 117 | */ | 117 | */ |
| 118 | static inline struct ap_queue_status | 118 | static inline struct ap_queue_status |
| 119 | ap_test_queue(ap_qid_t qid, int *queue_depth, int *device_type) | 119 | ap_test_queue(ap_qid_t qid, int *queue_depth, int *device_type) |
| @@ -130,10 +130,10 @@ ap_test_queue(ap_qid_t qid, int *queue_depth, int *device_type) | |||
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | /** | 132 | /** |
| 133 | * Reset adjunct processor queue. | 133 | * ap_reset_queue(): Reset adjunct processor queue. |
| 134 | * @qid: the ap queue number | 134 | * @qid: The AP queue number |
| 135 | * | 135 | * |
| 136 | * Returns ap queue status structure. | 136 | * Returns AP queue status structure. |
| 137 | */ | 137 | */ |
| 138 | static inline struct ap_queue_status ap_reset_queue(ap_qid_t qid) | 138 | static inline struct ap_queue_status ap_reset_queue(ap_qid_t qid) |
| 139 | { | 139 | { |
| @@ -148,16 +148,14 @@ static inline struct ap_queue_status ap_reset_queue(ap_qid_t qid) | |||
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | /** | 150 | /** |
| 151 | * Send message to adjunct processor queue. | 151 | * __ap_send(): Send message to adjunct processor queue. |
| 152 | * @qid: the ap queue number | 152 | * @qid: The AP queue number |
| 153 | * @psmid: the program supplied message identifier | 153 | * @psmid: The program supplied message identifier |
| 154 | * @msg: the message text | 154 | * @msg: The message text |
| 155 | * @length: the message length | 155 | * @length: The message length |
| 156 | * | ||
| 157 | * Returns ap queue status structure. | ||
| 158 | * | 156 | * |
| 157 | * Returns AP queue status structure. | ||
| 159 | * Condition code 1 on NQAP can't happen because the L bit is 1. | 158 | * Condition code 1 on NQAP can't happen because the L bit is 1. |
| 160 | * | ||
| 161 | * Condition code 2 on NQAP also means the send is incomplete, | 159 | * Condition code 2 on NQAP also means the send is incomplete, |
| 162 | * because a segment boundary was reached. The NQAP is repeated. | 160 | * because a segment boundary was reached. The NQAP is repeated. |
| 163 | */ | 161 | */ |
| @@ -198,23 +196,20 @@ int ap_send(ap_qid_t qid, unsigned long long psmid, void *msg, size_t length) | |||
| 198 | } | 196 | } |
| 199 | EXPORT_SYMBOL(ap_send); | 197 | EXPORT_SYMBOL(ap_send); |
| 200 | 198 | ||
| 201 | /* | 199 | /** |
| 202 | * Receive message from adjunct processor queue. | 200 | * __ap_recv(): Receive message from adjunct processor queue. |
| 203 | * @qid: the ap queue number | 201 | * @qid: The AP queue number |
| 204 | * @psmid: pointer to program supplied message identifier | 202 | * @psmid: Pointer to program supplied message identifier |
| 205 | * @msg: the message text | 203 | * @msg: The message text |
| 206 | * @length: the message length | 204 | * @length: The message length |
| 207 | * | ||
| 208 | * Returns ap queue status structure. | ||
| 209 | * | 205 | * |
| 206 | * Returns AP queue status structure. | ||
| 210 | * Condition code 1 on DQAP means the receive has taken place | 207 | * Condition code 1 on DQAP means the receive has taken place |
| 211 | * but only partially. The response is incomplete, hence the | 208 | * but only partially. The response is incomplete, hence the |
| 212 | * DQAP is repeated. | 209 | * DQAP is repeated. |
| 213 | * | ||
| 214 | * Condition code 2 on DQAP also means the receive is incomplete, | 210 | * Condition code 2 on DQAP also means the receive is incomplete, |
| 215 | * this time because a segment boundary was reached. Again, the | 211 | * this time because a segment boundary was reached. Again, the |
| 216 | * DQAP is repeated. | 212 | * DQAP is repeated. |
| 217 | * | ||
| 218 | * Note that gpr2 is used by the DQAP instruction to keep track of | 213 | * Note that gpr2 is used by the DQAP instruction to keep track of |
| 219 | * any 'residual' length, in case the instruction gets interrupted. | 214 | * any 'residual' length, in case the instruction gets interrupted. |
| 220 | * Hence it gets zeroed before the instruction. | 215 | * Hence it gets zeroed before the instruction. |
| @@ -263,11 +258,12 @@ int ap_recv(ap_qid_t qid, unsigned long long *psmid, void *msg, size_t length) | |||
| 263 | EXPORT_SYMBOL(ap_recv); | 258 | EXPORT_SYMBOL(ap_recv); |
| 264 | 259 | ||
| 265 | /** | 260 | /** |
| 266 | * Check if an AP queue is available. The test is repeated for | 261 | * ap_query_queue(): Check if an AP queue is available. |
| 267 | * AP_MAX_RESET times. | 262 | * @qid: The AP queue number |
| 268 | * @qid: the ap queue number | 263 | * @queue_depth: Pointer to queue depth value |
| 269 | * @queue_depth: pointer to queue depth value | 264 | * @device_type: Pointer to device type value |
| 270 | * @device_type: pointer to device type value | 265 | * |
| 266 | * The test is repeated for AP_MAX_RESET times. | ||
| 271 | */ | 267 | */ |
| 272 | static int ap_query_queue(ap_qid_t qid, int *queue_depth, int *device_type) | 268 | static int ap_query_queue(ap_qid_t qid, int *queue_depth, int *device_type) |
| 273 | { | 269 | { |
| @@ -308,8 +304,10 @@ static int ap_query_queue(ap_qid_t qid, int *queue_depth, int *device_type) | |||
| 308 | } | 304 | } |
| 309 | 305 | ||
| 310 | /** | 306 | /** |
| 307 | * ap_init_queue(): Reset an AP queue. | ||
| 308 | * @qid: The AP queue number | ||
| 309 | * | ||
| 311 | * Reset an AP queue and wait for it to become available again. | 310 | * Reset an AP queue and wait for it to become available again. |
| 312 | * @qid: the ap queue number | ||
| 313 | */ | 311 | */ |
| 314 | static int ap_init_queue(ap_qid_t qid) | 312 | static int ap_init_queue(ap_qid_t qid) |
| 315 | { | 313 | { |
| @@ -346,7 +344,10 @@ static int ap_init_queue(ap_qid_t qid) | |||
| 346 | } | 344 | } |
| 347 | 345 | ||
| 348 | /** | 346 | /** |
| 349 | * Arm request timeout if a AP device was idle and a new request is submitted. | 347 | * ap_increase_queue_count(): Arm request timeout. |
| 348 | * @ap_dev: Pointer to an AP device. | ||
| 349 | * | ||
| 350 | * Arm request timeout if an AP device was idle and a new request is submitted. | ||
| 350 | */ | 351 | */ |
| 351 | static void ap_increase_queue_count(struct ap_device *ap_dev) | 352 | static void ap_increase_queue_count(struct ap_device *ap_dev) |
| 352 | { | 353 | { |
| @@ -360,7 +361,10 @@ static void ap_increase_queue_count(struct ap_device *ap_dev) | |||
| 360 | } | 361 | } |
| 361 | 362 | ||
| 362 | /** | 363 | /** |
| 363 | * AP device is still alive, re-schedule request timeout if there are still | 364 | * ap_decrease_queue_count(): Decrease queue count. |
| 365 | * @ap_dev: Pointer to an AP device. | ||
| 366 | * | ||
| 367 | * If AP device is still alive, re-schedule request timeout if there are still | ||
| 364 | * pending requests. | 368 | * pending requests. |
| 365 | */ | 369 | */ |
| 366 | static void ap_decrease_queue_count(struct ap_device *ap_dev) | 370 | static void ap_decrease_queue_count(struct ap_device *ap_dev) |
| @@ -371,7 +375,7 @@ static void ap_decrease_queue_count(struct ap_device *ap_dev) | |||
| 371 | if (ap_dev->queue_count > 0) | 375 | if (ap_dev->queue_count > 0) |
| 372 | mod_timer(&ap_dev->timeout, jiffies + timeout); | 376 | mod_timer(&ap_dev->timeout, jiffies + timeout); |
| 373 | else | 377 | else |
| 374 | /** | 378 | /* |
| 375 | * The timeout timer should to be disabled now - since | 379 | * The timeout timer should to be disabled now - since |
| 376 | * del_timer_sync() is very expensive, we just tell via the | 380 | * del_timer_sync() is very expensive, we just tell via the |
| 377 | * reset flag to ignore the pending timeout timer. | 381 | * reset flag to ignore the pending timeout timer. |
| @@ -379,7 +383,7 @@ static void ap_decrease_queue_count(struct ap_device *ap_dev) | |||
| 379 | ap_dev->reset = AP_RESET_IGNORE; | 383 | ap_dev->reset = AP_RESET_IGNORE; |
| 380 | } | 384 | } |
| 381 | 385 | ||
| 382 | /** | 386 | /* |
| 383 | * AP device related attributes. | 387 | * AP device related attributes. |
| 384 | */ | 388 | */ |
| 385 | static ssize_t ap_hwtype_show(struct device *dev, | 389 | static ssize_t ap_hwtype_show(struct device *dev, |
| @@ -433,6 +437,10 @@ static struct attribute_group ap_dev_attr_group = { | |||
| 433 | }; | 437 | }; |
| 434 | 438 | ||
| 435 | /** | 439 | /** |
| 440 | * ap_bus_match() | ||
| 441 | * @dev: Pointer to device | ||
| 442 | * @drv: Pointer to device_driver | ||
| 443 | * | ||
| 436 | * AP bus driver registration/unregistration. | 444 | * AP bus driver registration/unregistration. |
| 437 | */ | 445 | */ |
| 438 | static int ap_bus_match(struct device *dev, struct device_driver *drv) | 446 | static int ap_bus_match(struct device *dev, struct device_driver *drv) |
| @@ -441,7 +449,7 @@ static int ap_bus_match(struct device *dev, struct device_driver *drv) | |||
| 441 | struct ap_driver *ap_drv = to_ap_drv(drv); | 449 | struct ap_driver *ap_drv = to_ap_drv(drv); |
| 442 | struct ap_device_id *id; | 450 | struct ap_device_id *id; |
| 443 | 451 | ||
| 444 | /** | 452 | /* |
| 445 | * Compare device type of the device with the list of | 453 | * Compare device type of the device with the list of |
| 446 | * supported types of the device_driver. | 454 | * supported types of the device_driver. |
| 447 | */ | 455 | */ |
| @@ -455,8 +463,12 @@ static int ap_bus_match(struct device *dev, struct device_driver *drv) | |||
| 455 | } | 463 | } |
| 456 | 464 | ||
| 457 | /** | 465 | /** |
| 458 | * uevent function for AP devices. It sets up a single environment | 466 | * ap_uevent(): Uevent function for AP devices. |
| 459 | * variable DEV_TYPE which contains the hardware device type. | 467 | * @dev: Pointer to device |
| 468 | * @env: Pointer to kobj_uevent_env | ||
| 469 | * | ||
| 470 | * It sets up a single environment variable DEV_TYPE which contains the | ||
| 471 | * hardware device type. | ||
| 460 | */ | 472 | */ |
| 461 | static int ap_uevent (struct device *dev, struct kobj_uevent_env *env) | 473 | static int ap_uevent (struct device *dev, struct kobj_uevent_env *env) |
| 462 | { | 474 | { |
| @@ -500,8 +512,10 @@ static int ap_device_probe(struct device *dev) | |||
| 500 | } | 512 | } |
| 501 | 513 | ||
| 502 | /** | 514 | /** |
| 515 | * __ap_flush_queue(): Flush requests. | ||
| 516 | * @ap_dev: Pointer to the AP device | ||
| 517 | * | ||
| 503 | * Flush all requests from the request/pending queue of an AP device. | 518 | * Flush all requests from the request/pending queue of an AP device. |
| 504 | * @ap_dev: pointer to the AP device. | ||
| 505 | */ | 519 | */ |
| 506 | static void __ap_flush_queue(struct ap_device *ap_dev) | 520 | static void __ap_flush_queue(struct ap_device *ap_dev) |
| 507 | { | 521 | { |
| @@ -565,7 +579,7 @@ void ap_driver_unregister(struct ap_driver *ap_drv) | |||
| 565 | } | 579 | } |
| 566 | EXPORT_SYMBOL(ap_driver_unregister); | 580 | EXPORT_SYMBOL(ap_driver_unregister); |
| 567 | 581 | ||
| 568 | /** | 582 | /* |
| 569 | * AP bus attributes. | 583 | * AP bus attributes. |
| 570 | */ | 584 | */ |
| 571 | static ssize_t ap_domain_show(struct bus_type *bus, char *buf) | 585 | static ssize_t ap_domain_show(struct bus_type *bus, char *buf) |
| @@ -630,14 +644,16 @@ static struct bus_attribute *const ap_bus_attrs[] = { | |||
| 630 | }; | 644 | }; |
| 631 | 645 | ||
| 632 | /** | 646 | /** |
| 633 | * Pick one of the 16 ap domains. | 647 | * ap_select_domain(): Select an AP domain. |
| 648 | * | ||
| 649 | * Pick one of the 16 AP domains. | ||
| 634 | */ | 650 | */ |
| 635 | static int ap_select_domain(void) | 651 | static int ap_select_domain(void) |
| 636 | { | 652 | { |
| 637 | int queue_depth, device_type, count, max_count, best_domain; | 653 | int queue_depth, device_type, count, max_count, best_domain; |
| 638 | int rc, i, j; | 654 | int rc, i, j; |
| 639 | 655 | ||
| 640 | /** | 656 | /* |
| 641 | * We want to use a single domain. Either the one specified with | 657 | * We want to use a single domain. Either the one specified with |
| 642 | * the "domain=" parameter or the domain with the maximum number | 658 | * the "domain=" parameter or the domain with the maximum number |
| 643 | * of devices. | 659 | * of devices. |
| @@ -669,8 +685,10 @@ static int ap_select_domain(void) | |||
| 669 | } | 685 | } |
| 670 | 686 | ||
| 671 | /** | 687 | /** |
| 672 | * Find the device type if query queue returned a device type of 0. | 688 | * ap_probe_device_type(): Find the device type of an AP. |
| 673 | * @ap_dev: pointer to the AP device. | 689 | * @ap_dev: pointer to the AP device. |
| 690 | * | ||
| 691 | * Find the device type if query queue returned a device type of 0. | ||
| 674 | */ | 692 | */ |
| 675 | static int ap_probe_device_type(struct ap_device *ap_dev) | 693 | static int ap_probe_device_type(struct ap_device *ap_dev) |
| 676 | { | 694 | { |
| @@ -764,7 +782,11 @@ out: | |||
| 764 | } | 782 | } |
| 765 | 783 | ||
| 766 | /** | 784 | /** |
| 767 | * Scan the ap bus for new devices. | 785 | * __ap_scan_bus(): Scan the AP bus. |
| 786 | * @dev: Pointer to device | ||
| 787 | * @data: Pointer to data | ||
| 788 | * | ||
| 789 | * Scan the AP bus for new devices. | ||
| 768 | */ | 790 | */ |
| 769 | static int __ap_scan_bus(struct device *dev, void *data) | 791 | static int __ap_scan_bus(struct device *dev, void *data) |
| 770 | { | 792 | { |
| @@ -867,6 +889,8 @@ ap_config_timeout(unsigned long ptr) | |||
| 867 | } | 889 | } |
| 868 | 890 | ||
| 869 | /** | 891 | /** |
| 892 | * ap_schedule_poll_timer(): Schedule poll timer. | ||
| 893 | * | ||
| 870 | * Set up the timer to run the poll tasklet | 894 | * Set up the timer to run the poll tasklet |
| 871 | */ | 895 | */ |
| 872 | static inline void ap_schedule_poll_timer(void) | 896 | static inline void ap_schedule_poll_timer(void) |
| @@ -877,10 +901,11 @@ static inline void ap_schedule_poll_timer(void) | |||
| 877 | } | 901 | } |
| 878 | 902 | ||
| 879 | /** | 903 | /** |
| 880 | * Receive pending reply messages from an AP device. | 904 | * ap_poll_read(): Receive pending reply messages from an AP device. |
| 881 | * @ap_dev: pointer to the AP device | 905 | * @ap_dev: pointer to the AP device |
| 882 | * @flags: pointer to control flags, bit 2^0 is set if another poll is | 906 | * @flags: pointer to control flags, bit 2^0 is set if another poll is |
| 883 | * required, bit 2^1 is set if the poll timer needs to get armed | 907 | * required, bit 2^1 is set if the poll timer needs to get armed |
| 908 | * | ||
| 884 | * Returns 0 if the device is still present, -ENODEV if not. | 909 | * Returns 0 if the device is still present, -ENODEV if not. |
| 885 | */ | 910 | */ |
| 886 | static int ap_poll_read(struct ap_device *ap_dev, unsigned long *flags) | 911 | static int ap_poll_read(struct ap_device *ap_dev, unsigned long *flags) |
| @@ -925,10 +950,11 @@ static int ap_poll_read(struct ap_device *ap_dev, unsigned long *flags) | |||
| 925 | } | 950 | } |
| 926 | 951 | ||
| 927 | /** | 952 | /** |
| 928 | * Send messages from the request queue to an AP device. | 953 | * ap_poll_write(): Send messages from the request queue to an AP device. |
| 929 | * @ap_dev: pointer to the AP device | 954 | * @ap_dev: pointer to the AP device |
| 930 | * @flags: pointer to control flags, bit 2^0 is set if another poll is | 955 | * @flags: pointer to control flags, bit 2^0 is set if another poll is |
| 931 | * required, bit 2^1 is set if the poll timer needs to get armed | 956 | * required, bit 2^1 is set if the poll timer needs to get armed |
| 957 | * | ||
| 932 | * Returns 0 if the device is still present, -ENODEV if not. | 958 | * Returns 0 if the device is still present, -ENODEV if not. |
| 933 | */ | 959 | */ |
| 934 | static int ap_poll_write(struct ap_device *ap_dev, unsigned long *flags) | 960 | static int ap_poll_write(struct ap_device *ap_dev, unsigned long *flags) |
| @@ -968,11 +994,13 @@ static int ap_poll_write(struct ap_device *ap_dev, unsigned long *flags) | |||
| 968 | } | 994 | } |
| 969 | 995 | ||
| 970 | /** | 996 | /** |
| 971 | * Poll AP device for pending replies and send new messages. If either | 997 | * ap_poll_queue(): Poll AP device for pending replies and send new messages. |
| 972 | * ap_poll_read or ap_poll_write returns -ENODEV unregister the device. | ||
| 973 | * @ap_dev: pointer to the bus device | 998 | * @ap_dev: pointer to the bus device |
| 974 | * @flags: pointer to control flags, bit 2^0 is set if another poll is | 999 | * @flags: pointer to control flags, bit 2^0 is set if another poll is |
| 975 | * required, bit 2^1 is set if the poll timer needs to get armed | 1000 | * required, bit 2^1 is set if the poll timer needs to get armed |
| 1001 | * | ||
| 1002 | * Poll AP device for pending replies and send new messages. If either | ||
| 1003 | * ap_poll_read or ap_poll_write returns -ENODEV unregister the device. | ||
| 976 | * Returns 0. | 1004 | * Returns 0. |
| 977 | */ | 1005 | */ |
| 978 | static inline int ap_poll_queue(struct ap_device *ap_dev, unsigned long *flags) | 1006 | static inline int ap_poll_queue(struct ap_device *ap_dev, unsigned long *flags) |
| @@ -986,9 +1014,11 @@ static inline int ap_poll_queue(struct ap_device *ap_dev, unsigned long *flags) | |||
| 986 | } | 1014 | } |
| 987 | 1015 | ||
| 988 | /** | 1016 | /** |
| 989 | * Queue a message to a device. | 1017 | * __ap_queue_message(): Queue a message to a device. |
| 990 | * @ap_dev: pointer to the AP device | 1018 | * @ap_dev: pointer to the AP device |
| 991 | * @ap_msg: the message to be queued | 1019 | * @ap_msg: the message to be queued |
| 1020 | * | ||
| 1021 | * Queue a message to a device. Returns 0 if successful. | ||
| 992 | */ | 1022 | */ |
| 993 | static int __ap_queue_message(struct ap_device *ap_dev, struct ap_message *ap_msg) | 1023 | static int __ap_queue_message(struct ap_device *ap_dev, struct ap_message *ap_msg) |
| 994 | { | 1024 | { |
| @@ -1055,12 +1085,14 @@ void ap_queue_message(struct ap_device *ap_dev, struct ap_message *ap_msg) | |||
| 1055 | EXPORT_SYMBOL(ap_queue_message); | 1085 | EXPORT_SYMBOL(ap_queue_message); |
| 1056 | 1086 | ||
| 1057 | /** | 1087 | /** |
| 1088 | * ap_cancel_message(): Cancel a crypto request. | ||
| 1089 | * @ap_dev: The AP device that has the message queued | ||
| 1090 | * @ap_msg: The message that is to be removed | ||
| 1091 | * | ||
| 1058 | * Cancel a crypto request. This is done by removing the request | 1092 | * Cancel a crypto request. This is done by removing the request |
| 1059 | * from the devive pendingq or requestq queue. Note that the | 1093 | * from the device pending or request queue. Note that the |
| 1060 | * request stays on the AP queue. When it finishes the message | 1094 | * request stays on the AP queue. When it finishes the message |
| 1061 | * reply will be discarded because the psmid can't be found. | 1095 | * reply will be discarded because the psmid can't be found. |
| 1062 | * @ap_dev: AP device that has the message queued | ||
| 1063 | * @ap_msg: the message that is to be removed | ||
| 1064 | */ | 1096 | */ |
| 1065 | void ap_cancel_message(struct ap_device *ap_dev, struct ap_message *ap_msg) | 1097 | void ap_cancel_message(struct ap_device *ap_dev, struct ap_message *ap_msg) |
| 1066 | { | 1098 | { |
| @@ -1082,7 +1114,10 @@ void ap_cancel_message(struct ap_device *ap_dev, struct ap_message *ap_msg) | |||
| 1082 | EXPORT_SYMBOL(ap_cancel_message); | 1114 | EXPORT_SYMBOL(ap_cancel_message); |
| 1083 | 1115 | ||
| 1084 | /** | 1116 | /** |
| 1085 | * AP receive polling for finished AP requests | 1117 | * ap_poll_timeout(): AP receive polling for finished AP requests. |
| 1118 | * @unused: Unused variable. | ||
| 1119 | * | ||
| 1120 | * Schedules the AP tasklet. | ||
| 1086 | */ | 1121 | */ |
| 1087 | static void ap_poll_timeout(unsigned long unused) | 1122 | static void ap_poll_timeout(unsigned long unused) |
| 1088 | { | 1123 | { |
| @@ -1090,6 +1125,9 @@ static void ap_poll_timeout(unsigned long unused) | |||
| 1090 | } | 1125 | } |
| 1091 | 1126 | ||
| 1092 | /** | 1127 | /** |
| 1128 | * ap_reset(): Reset a not responding AP device. | ||
| 1129 | * @ap_dev: Pointer to the AP device | ||
| 1130 | * | ||
| 1093 | * Reset a not responding AP device and move all requests from the | 1131 | * Reset a not responding AP device and move all requests from the |
| 1094 | * pending queue to the request queue. | 1132 | * pending queue to the request queue. |
| 1095 | */ | 1133 | */ |
| @@ -1108,11 +1146,6 @@ static void ap_reset(struct ap_device *ap_dev) | |||
| 1108 | ap_dev->unregistered = 1; | 1146 | ap_dev->unregistered = 1; |
| 1109 | } | 1147 | } |
| 1110 | 1148 | ||
| 1111 | /** | ||
| 1112 | * Poll all AP devices on the bus in a round robin fashion. Continue | ||
| 1113 | * polling until bit 2^0 of the control flags is not set. If bit 2^1 | ||
| 1114 | * of the control flags has been set arm the poll timer. | ||
| 1115 | */ | ||
| 1116 | static int __ap_poll_all(struct ap_device *ap_dev, unsigned long *flags) | 1149 | static int __ap_poll_all(struct ap_device *ap_dev, unsigned long *flags) |
| 1117 | { | 1150 | { |
| 1118 | spin_lock(&ap_dev->lock); | 1151 | spin_lock(&ap_dev->lock); |
| @@ -1126,6 +1159,14 @@ static int __ap_poll_all(struct ap_device *ap_dev, unsigned long *flags) | |||
| 1126 | return 0; | 1159 | return 0; |
| 1127 | } | 1160 | } |
| 1128 | 1161 | ||
| 1162 | /** | ||
| 1163 | * ap_poll_all(): Poll all AP devices. | ||
| 1164 | * @dummy: Unused variable | ||
| 1165 | * | ||
| 1166 | * Poll all AP devices on the bus in a round robin fashion. Continue | ||
| 1167 | * polling until bit 2^0 of the control flags is not set. If bit 2^1 | ||
| 1168 | * of the control flags has been set arm the poll timer. | ||
| 1169 | */ | ||
| 1129 | static void ap_poll_all(unsigned long dummy) | 1170 | static void ap_poll_all(unsigned long dummy) |
| 1130 | { | 1171 | { |
| 1131 | unsigned long flags; | 1172 | unsigned long flags; |
| @@ -1144,6 +1185,9 @@ static void ap_poll_all(unsigned long dummy) | |||
| 1144 | } | 1185 | } |
| 1145 | 1186 | ||
| 1146 | /** | 1187 | /** |
| 1188 | * ap_poll_thread(): Thread that polls for finished requests. | ||
| 1189 | * @data: Unused pointer | ||
| 1190 | * | ||
| 1147 | * AP bus poll thread. The purpose of this thread is to poll for | 1191 | * AP bus poll thread. The purpose of this thread is to poll for |
| 1148 | * finished requests in a loop if there is a "free" cpu - that is | 1192 | * finished requests in a loop if there is a "free" cpu - that is |
| 1149 | * a cpu that doesn't have anything better to do. The polling stops | 1193 | * a cpu that doesn't have anything better to do. The polling stops |
| @@ -1213,7 +1257,10 @@ static void ap_poll_thread_stop(void) | |||
| 1213 | } | 1257 | } |
| 1214 | 1258 | ||
| 1215 | /** | 1259 | /** |
| 1216 | * Handling of request timeouts | 1260 | * ap_request_timeout(): Handling of request timeouts |
| 1261 | * @data: Holds the AP device. | ||
| 1262 | * | ||
| 1263 | * Handles request timeouts. | ||
| 1217 | */ | 1264 | */ |
| 1218 | static void ap_request_timeout(unsigned long data) | 1265 | static void ap_request_timeout(unsigned long data) |
| 1219 | { | 1266 | { |
| @@ -1246,7 +1293,9 @@ static struct reset_call ap_reset_call = { | |||
| 1246 | }; | 1293 | }; |
| 1247 | 1294 | ||
| 1248 | /** | 1295 | /** |
| 1249 | * The module initialization code. | 1296 | * ap_module_init(): The module initialization code. |
| 1297 | * | ||
| 1298 | * Initializes the module. | ||
| 1250 | */ | 1299 | */ |
| 1251 | int __init ap_module_init(void) | 1300 | int __init ap_module_init(void) |
| 1252 | { | 1301 | { |
| @@ -1288,7 +1337,7 @@ int __init ap_module_init(void) | |||
| 1288 | if (ap_select_domain() == 0) | 1337 | if (ap_select_domain() == 0) |
| 1289 | ap_scan_bus(NULL); | 1338 | ap_scan_bus(NULL); |
| 1290 | 1339 | ||
| 1291 | /* Setup the ap bus rescan timer. */ | 1340 | /* Setup the AP bus rescan timer. */ |
| 1292 | init_timer(&ap_config_timer); | 1341 | init_timer(&ap_config_timer); |
| 1293 | ap_config_timer.function = ap_config_timeout; | 1342 | ap_config_timer.function = ap_config_timeout; |
| 1294 | ap_config_timer.data = 0; | 1343 | ap_config_timer.data = 0; |
| @@ -1325,7 +1374,9 @@ static int __ap_match_all(struct device *dev, void *data) | |||
| 1325 | } | 1374 | } |
| 1326 | 1375 | ||
| 1327 | /** | 1376 | /** |
| 1328 | * The module termination code | 1377 | * ap_modules_exit(): The module termination code |
| 1378 | * | ||
| 1379 | * Terminates the module. | ||
| 1329 | */ | 1380 | */ |
| 1330 | void ap_module_exit(void) | 1381 | void ap_module_exit(void) |
| 1331 | { | 1382 | { |
diff --git a/drivers/s390/crypto/ap_bus.h b/drivers/s390/crypto/ap_bus.h index 87c2d6442875..c1e1200c43fc 100644 --- a/drivers/s390/crypto/ap_bus.h +++ b/drivers/s390/crypto/ap_bus.h | |||
| @@ -50,6 +50,15 @@ typedef unsigned int ap_qid_t; | |||
| 50 | #define AP_QID_QUEUE(_qid) ((_qid) & 15) | 50 | #define AP_QID_QUEUE(_qid) ((_qid) & 15) |
| 51 | 51 | ||
| 52 | /** | 52 | /** |
| 53 | * structy ap_queue_status - Holds the AP queue status. | ||
| 54 | * @queue_empty: Shows if queue is empty | ||
| 55 | * @replies_waiting: Waiting replies | ||
| 56 | * @queue_full: Is 1 if the queue is full | ||
| 57 | * @pad: A 4 bit pad | ||
| 58 | * @int_enabled: Shows if interrupts are enabled for the AP | ||
| 59 | * @response_conde: Holds the 8 bit response code | ||
| 60 | * @pad2: A 16 bit pad | ||
| 61 | * | ||
| 53 | * The ap queue status word is returned by all three AP functions | 62 | * The ap queue status word is returned by all three AP functions |
| 54 | * (PQAP, NQAP and DQAP). There's a set of flags in the first | 63 | * (PQAP, NQAP and DQAP). There's a set of flags in the first |
| 55 | * byte, followed by a 1 byte response code. | 64 | * byte, followed by a 1 byte response code. |
| @@ -75,7 +84,7 @@ struct ap_queue_status { | |||
| 75 | #define AP_RESPONSE_NO_FIRST_PART 0x13 | 84 | #define AP_RESPONSE_NO_FIRST_PART 0x13 |
| 76 | #define AP_RESPONSE_MESSAGE_TOO_BIG 0x15 | 85 | #define AP_RESPONSE_MESSAGE_TOO_BIG 0x15 |
| 77 | 86 | ||
| 78 | /** | 87 | /* |
| 79 | * Known device types | 88 | * Known device types |
| 80 | */ | 89 | */ |
| 81 | #define AP_DEVICE_TYPE_PCICC 3 | 90 | #define AP_DEVICE_TYPE_PCICC 3 |
| @@ -84,7 +93,7 @@ struct ap_queue_status { | |||
| 84 | #define AP_DEVICE_TYPE_CEX2A 6 | 93 | #define AP_DEVICE_TYPE_CEX2A 6 |
| 85 | #define AP_DEVICE_TYPE_CEX2C 7 | 94 | #define AP_DEVICE_TYPE_CEX2C 7 |
| 86 | 95 | ||
| 87 | /** | 96 | /* |
| 88 | * AP reset flag states | 97 | * AP reset flag states |
| 89 | */ | 98 | */ |
| 90 | #define AP_RESET_IGNORE 0 /* request timeout will be ignored */ | 99 | #define AP_RESET_IGNORE 0 /* request timeout will be ignored */ |
| @@ -152,7 +161,7 @@ struct ap_message { | |||
| 152 | .dev_type=(dt), \ | 161 | .dev_type=(dt), \ |
| 153 | .match_flags=AP_DEVICE_ID_MATCH_DEVICE_TYPE, | 162 | .match_flags=AP_DEVICE_ID_MATCH_DEVICE_TYPE, |
| 154 | 163 | ||
| 155 | /** | 164 | /* |
| 156 | * Note: don't use ap_send/ap_recv after using ap_queue_message | 165 | * Note: don't use ap_send/ap_recv after using ap_queue_message |
| 157 | * for the first time. Otherwise the ap message queue will get | 166 | * for the first time. Otherwise the ap message queue will get |
| 158 | * confused. | 167 | * confused. |
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index b2740ff2e615..4d36e805a234 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | #include "zcrypt_api.h" | 41 | #include "zcrypt_api.h" |
| 42 | 42 | ||
| 43 | /** | 43 | /* |
| 44 | * Module description. | 44 | * Module description. |
| 45 | */ | 45 | */ |
| 46 | MODULE_AUTHOR("IBM Corporation"); | 46 | MODULE_AUTHOR("IBM Corporation"); |
| @@ -56,7 +56,7 @@ static atomic_t zcrypt_open_count = ATOMIC_INIT(0); | |||
| 56 | static int zcrypt_rng_device_add(void); | 56 | static int zcrypt_rng_device_add(void); |
| 57 | static void zcrypt_rng_device_remove(void); | 57 | static void zcrypt_rng_device_remove(void); |
| 58 | 58 | ||
| 59 | /** | 59 | /* |
| 60 | * Device attributes common for all crypto devices. | 60 | * Device attributes common for all crypto devices. |
| 61 | */ | 61 | */ |
| 62 | static ssize_t zcrypt_type_show(struct device *dev, | 62 | static ssize_t zcrypt_type_show(struct device *dev, |
| @@ -103,6 +103,9 @@ static struct attribute_group zcrypt_device_attr_group = { | |||
| 103 | }; | 103 | }; |
| 104 | 104 | ||
| 105 | /** | 105 | /** |
| 106 | * __zcrypt_increase_preference(): Increase preference of a crypto device. | ||
| 107 | * @zdev: Pointer the crypto device | ||
| 108 | * | ||
| 106 | * Move the device towards the head of the device list. | 109 | * Move the device towards the head of the device list. |
| 107 | * Need to be called while holding the zcrypt device list lock. | 110 | * Need to be called while holding the zcrypt device list lock. |
| 108 | * Note: cards with speed_rating of 0 are kept at the end of the list. | 111 | * Note: cards with speed_rating of 0 are kept at the end of the list. |
| @@ -129,6 +132,9 @@ static void __zcrypt_increase_preference(struct zcrypt_device *zdev) | |||
| 129 | } | 132 | } |
| 130 | 133 | ||
| 131 | /** | 134 | /** |
| 135 | * __zcrypt_decrease_preference(): Decrease preference of a crypto device. | ||
| 136 | * @zdev: Pointer to a crypto device. | ||
| 137 | * | ||
| 132 | * Move the device towards the tail of the device list. | 138 | * Move the device towards the tail of the device list. |
| 133 | * Need to be called while holding the zcrypt device list lock. | 139 | * Need to be called while holding the zcrypt device list lock. |
| 134 | * Note: cards with speed_rating of 0 are kept at the end of the list. | 140 | * Note: cards with speed_rating of 0 are kept at the end of the list. |
| @@ -202,7 +208,10 @@ void zcrypt_device_free(struct zcrypt_device *zdev) | |||
| 202 | EXPORT_SYMBOL(zcrypt_device_free); | 208 | EXPORT_SYMBOL(zcrypt_device_free); |
| 203 | 209 | ||
| 204 | /** | 210 | /** |
| 205 | * Register a crypto device. | 211 | * zcrypt_device_register() - Register a crypto device. |
| 212 | * @zdev: Pointer to a crypto device | ||
| 213 | * | ||
| 214 | * Register a crypto device. Returns 0 if successful. | ||
| 206 | */ | 215 | */ |
| 207 | int zcrypt_device_register(struct zcrypt_device *zdev) | 216 | int zcrypt_device_register(struct zcrypt_device *zdev) |
| 208 | { | 217 | { |
| @@ -242,6 +251,9 @@ out: | |||
| 242 | EXPORT_SYMBOL(zcrypt_device_register); | 251 | EXPORT_SYMBOL(zcrypt_device_register); |
| 243 | 252 | ||
| 244 | /** | 253 | /** |
| 254 | * zcrypt_device_unregister(): Unregister a crypto device. | ||
| 255 | * @zdev: Pointer to crypto device | ||
| 256 | * | ||
| 245 | * Unregister a crypto device. | 257 | * Unregister a crypto device. |
| 246 | */ | 258 | */ |
| 247 | void zcrypt_device_unregister(struct zcrypt_device *zdev) | 259 | void zcrypt_device_unregister(struct zcrypt_device *zdev) |
| @@ -260,7 +272,9 @@ void zcrypt_device_unregister(struct zcrypt_device *zdev) | |||
| 260 | EXPORT_SYMBOL(zcrypt_device_unregister); | 272 | EXPORT_SYMBOL(zcrypt_device_unregister); |
| 261 | 273 | ||
| 262 | /** | 274 | /** |
| 263 | * zcrypt_read is not be supported beyond zcrypt 1.3.1 | 275 | * zcrypt_read (): Not supported beyond zcrypt 1.3.1. |
| 276 | * | ||
| 277 | * This function is not supported beyond zcrypt 1.3.1. | ||
| 264 | */ | 278 | */ |
| 265 | static ssize_t zcrypt_read(struct file *filp, char __user *buf, | 279 | static ssize_t zcrypt_read(struct file *filp, char __user *buf, |
| 266 | size_t count, loff_t *f_pos) | 280 | size_t count, loff_t *f_pos) |
| @@ -269,6 +283,8 @@ static ssize_t zcrypt_read(struct file *filp, char __user *buf, | |||
| 269 | } | 283 | } |
| 270 | 284 | ||
| 271 | /** | 285 | /** |
| 286 | * zcrypt_write(): Not allowed. | ||
| 287 | * | ||
| 272 | * Write is is not allowed | 288 | * Write is is not allowed |
| 273 | */ | 289 | */ |
| 274 | static ssize_t zcrypt_write(struct file *filp, const char __user *buf, | 290 | static ssize_t zcrypt_write(struct file *filp, const char __user *buf, |
| @@ -278,7 +294,9 @@ static ssize_t zcrypt_write(struct file *filp, const char __user *buf, | |||
| 278 | } | 294 | } |
| 279 | 295 | ||
| 280 | /** | 296 | /** |
| 281 | * Device open/close functions to count number of users. | 297 | * zcrypt_open(): Count number of users. |
| 298 | * | ||
| 299 | * Device open function to count number of users. | ||
| 282 | */ | 300 | */ |
| 283 | static int zcrypt_open(struct inode *inode, struct file *filp) | 301 | static int zcrypt_open(struct inode *inode, struct file *filp) |
| 284 | { | 302 | { |
| @@ -286,13 +304,18 @@ static int zcrypt_open(struct inode *inode, struct file *filp) | |||
| 286 | return 0; | 304 | return 0; |
| 287 | } | 305 | } |
| 288 | 306 | ||
| 307 | /** | ||
| 308 | * zcrypt_release(): Count number of users. | ||
| 309 | * | ||
| 310 | * Device close function to count number of users. | ||
| 311 | */ | ||
| 289 | static int zcrypt_release(struct inode *inode, struct file *filp) | 312 | static int zcrypt_release(struct inode *inode, struct file *filp) |
| 290 | { | 313 | { |
| 291 | atomic_dec(&zcrypt_open_count); | 314 | atomic_dec(&zcrypt_open_count); |
| 292 | return 0; | 315 | return 0; |
| 293 | } | 316 | } |
| 294 | 317 | ||
| 295 | /** | 318 | /* |
| 296 | * zcrypt ioctls. | 319 | * zcrypt ioctls. |
| 297 | */ | 320 | */ |
| 298 | static long zcrypt_rsa_modexpo(struct ica_rsa_modexpo *mex) | 321 | static long zcrypt_rsa_modexpo(struct ica_rsa_modexpo *mex) |
| @@ -302,7 +325,7 @@ static long zcrypt_rsa_modexpo(struct ica_rsa_modexpo *mex) | |||
| 302 | 325 | ||
| 303 | if (mex->outputdatalength < mex->inputdatalength) | 326 | if (mex->outputdatalength < mex->inputdatalength) |
| 304 | return -EINVAL; | 327 | return -EINVAL; |
| 305 | /** | 328 | /* |
| 306 | * As long as outputdatalength is big enough, we can set the | 329 | * As long as outputdatalength is big enough, we can set the |
| 307 | * outputdatalength equal to the inputdatalength, since that is the | 330 | * outputdatalength equal to the inputdatalength, since that is the |
| 308 | * number of bytes we will copy in any case | 331 | * number of bytes we will copy in any case |
| @@ -348,7 +371,7 @@ static long zcrypt_rsa_crt(struct ica_rsa_modexpo_crt *crt) | |||
| 348 | if (crt->outputdatalength < crt->inputdatalength || | 371 | if (crt->outputdatalength < crt->inputdatalength || |
| 349 | (crt->inputdatalength & 1)) | 372 | (crt->inputdatalength & 1)) |
| 350 | return -EINVAL; | 373 | return -EINVAL; |
| 351 | /** | 374 | /* |
| 352 | * As long as outputdatalength is big enough, we can set the | 375 | * As long as outputdatalength is big enough, we can set the |
| 353 | * outputdatalength equal to the inputdatalength, since that is the | 376 | * outputdatalength equal to the inputdatalength, since that is the |
| 354 | * number of bytes we will copy in any case | 377 | * number of bytes we will copy in any case |
| @@ -365,7 +388,7 @@ static long zcrypt_rsa_crt(struct ica_rsa_modexpo_crt *crt) | |||
| 365 | zdev->max_mod_size < crt->inputdatalength) | 388 | zdev->max_mod_size < crt->inputdatalength) |
| 366 | continue; | 389 | continue; |
| 367 | if (zdev->short_crt && crt->inputdatalength > 240) { | 390 | if (zdev->short_crt && crt->inputdatalength > 240) { |
| 368 | /** | 391 | /* |
| 369 | * Check inputdata for leading zeros for cards | 392 | * Check inputdata for leading zeros for cards |
| 370 | * that can't handle np_prime, bp_key, or | 393 | * that can't handle np_prime, bp_key, or |
| 371 | * u_mult_inv > 128 bytes. | 394 | * u_mult_inv > 128 bytes. |
| @@ -381,7 +404,7 @@ static long zcrypt_rsa_crt(struct ica_rsa_modexpo_crt *crt) | |||
| 381 | copy_from_user(&z3, crt->u_mult_inv, len)) | 404 | copy_from_user(&z3, crt->u_mult_inv, len)) |
| 382 | return -EFAULT; | 405 | return -EFAULT; |
| 383 | copied = 1; | 406 | copied = 1; |
| 384 | /** | 407 | /* |
| 385 | * We have to restart device lookup - | 408 | * We have to restart device lookup - |
| 386 | * the device list may have changed by now. | 409 | * the device list may have changed by now. |
| 387 | */ | 410 | */ |
| @@ -567,6 +590,8 @@ static int zcrypt_count_type(int type) | |||
| 567 | } | 590 | } |
| 568 | 591 | ||
| 569 | /** | 592 | /** |
| 593 | * zcrypt_ica_status(): Old, depracted combi status call. | ||
| 594 | * | ||
| 570 | * Old, deprecated combi status call. | 595 | * Old, deprecated combi status call. |
| 571 | */ | 596 | */ |
| 572 | static long zcrypt_ica_status(struct file *filp, unsigned long arg) | 597 | static long zcrypt_ica_status(struct file *filp, unsigned long arg) |
| @@ -668,7 +693,7 @@ static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd, | |||
| 668 | (int __user *) arg); | 693 | (int __user *) arg); |
| 669 | case Z90STAT_DOMAIN_INDEX: | 694 | case Z90STAT_DOMAIN_INDEX: |
| 670 | return put_user(ap_domain_index, (int __user *) arg); | 695 | return put_user(ap_domain_index, (int __user *) arg); |
| 671 | /** | 696 | /* |
| 672 | * Deprecated ioctls. Don't add another device count ioctl, | 697 | * Deprecated ioctls. Don't add another device count ioctl, |
| 673 | * you can count them yourself in the user space with the | 698 | * you can count them yourself in the user space with the |
| 674 | * output of the Z90STAT_STATUS_MASK ioctl. | 699 | * output of the Z90STAT_STATUS_MASK ioctl. |
| @@ -706,7 +731,7 @@ static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd, | |||
| 706 | } | 731 | } |
| 707 | 732 | ||
| 708 | #ifdef CONFIG_COMPAT | 733 | #ifdef CONFIG_COMPAT |
| 709 | /** | 734 | /* |
| 710 | * ioctl32 conversion routines | 735 | * ioctl32 conversion routines |
| 711 | */ | 736 | */ |
| 712 | struct compat_ica_rsa_modexpo { | 737 | struct compat_ica_rsa_modexpo { |
| @@ -857,7 +882,7 @@ static long zcrypt_compat_ioctl(struct file *filp, unsigned int cmd, | |||
| 857 | } | 882 | } |
| 858 | #endif | 883 | #endif |
| 859 | 884 | ||
| 860 | /** | 885 | /* |
| 861 | * Misc device file operations. | 886 | * Misc device file operations. |
| 862 | */ | 887 | */ |
| 863 | static const struct file_operations zcrypt_fops = { | 888 | static const struct file_operations zcrypt_fops = { |
| @@ -872,7 +897,7 @@ static const struct file_operations zcrypt_fops = { | |||
| 872 | .release = zcrypt_release | 897 | .release = zcrypt_release |
| 873 | }; | 898 | }; |
| 874 | 899 | ||
| 875 | /** | 900 | /* |
| 876 | * Misc device. | 901 | * Misc device. |
| 877 | */ | 902 | */ |
| 878 | static struct miscdevice zcrypt_misc_device = { | 903 | static struct miscdevice zcrypt_misc_device = { |
| @@ -881,7 +906,7 @@ static struct miscdevice zcrypt_misc_device = { | |||
| 881 | .fops = &zcrypt_fops, | 906 | .fops = &zcrypt_fops, |
| 882 | }; | 907 | }; |
| 883 | 908 | ||
| 884 | /** | 909 | /* |
| 885 | * Deprecated /proc entry support. | 910 | * Deprecated /proc entry support. |
| 886 | */ | 911 | */ |
| 887 | static struct proc_dir_entry *zcrypt_entry; | 912 | static struct proc_dir_entry *zcrypt_entry; |
| @@ -1075,7 +1100,7 @@ static int zcrypt_status_write(struct file *file, const char __user *buffer, | |||
| 1075 | } | 1100 | } |
| 1076 | 1101 | ||
| 1077 | for (j = 0; j < 64 && *ptr; ptr++) { | 1102 | for (j = 0; j < 64 && *ptr; ptr++) { |
| 1078 | /** | 1103 | /* |
| 1079 | * '0' for no device, '1' for PCICA, '2' for PCICC, | 1104 | * '0' for no device, '1' for PCICA, '2' for PCICC, |
| 1080 | * '3' for PCIXCC_MCL2, '4' for PCIXCC_MCL3, | 1105 | * '3' for PCIXCC_MCL2, '4' for PCIXCC_MCL3, |
| 1081 | * '5' for CEX2C and '6' for CEX2A' | 1106 | * '5' for CEX2C and '6' for CEX2A' |
| @@ -1103,7 +1128,7 @@ static int zcrypt_rng_data_read(struct hwrng *rng, u32 *data) | |||
| 1103 | { | 1128 | { |
| 1104 | int rc; | 1129 | int rc; |
| 1105 | 1130 | ||
| 1106 | /** | 1131 | /* |
| 1107 | * We don't need locking here because the RNG API guarantees serialized | 1132 | * We don't need locking here because the RNG API guarantees serialized |
| 1108 | * read method calls. | 1133 | * read method calls. |
| 1109 | */ | 1134 | */ |
| @@ -1162,6 +1187,8 @@ static void zcrypt_rng_device_remove(void) | |||
| 1162 | } | 1187 | } |
| 1163 | 1188 | ||
| 1164 | /** | 1189 | /** |
| 1190 | * zcrypt_api_init(): Module initialization. | ||
| 1191 | * | ||
| 1165 | * The module initialization code. | 1192 | * The module initialization code. |
| 1166 | */ | 1193 | */ |
| 1167 | int __init zcrypt_api_init(void) | 1194 | int __init zcrypt_api_init(void) |
| @@ -1196,6 +1223,8 @@ out: | |||
| 1196 | } | 1223 | } |
| 1197 | 1224 | ||
| 1198 | /** | 1225 | /** |
| 1226 | * zcrypt_api_exit(): Module termination. | ||
| 1227 | * | ||
| 1199 | * The module termination code. | 1228 | * The module termination code. |
| 1200 | */ | 1229 | */ |
| 1201 | void zcrypt_api_exit(void) | 1230 | void zcrypt_api_exit(void) |
diff --git a/drivers/s390/crypto/zcrypt_cca_key.h b/drivers/s390/crypto/zcrypt_cca_key.h index 8dbcf0eef3e5..ed82f2f59b17 100644 --- a/drivers/s390/crypto/zcrypt_cca_key.h +++ b/drivers/s390/crypto/zcrypt_cca_key.h | |||
| @@ -174,7 +174,7 @@ static inline int zcrypt_type6_mex_key_de(struct ica_rsa_modexpo *mex, | |||
| 174 | key->pvtMeHdr = static_pvt_me_hdr; | 174 | key->pvtMeHdr = static_pvt_me_hdr; |
| 175 | key->pvtMeSec = static_pvt_me_sec; | 175 | key->pvtMeSec = static_pvt_me_sec; |
| 176 | key->pubMeSec = static_pub_me_sec; | 176 | key->pubMeSec = static_pub_me_sec; |
| 177 | /** | 177 | /* |
| 178 | * In a private key, the modulus doesn't appear in the public | 178 | * In a private key, the modulus doesn't appear in the public |
| 179 | * section. So, an arbitrary public exponent of 0x010001 will be | 179 | * section. So, an arbitrary public exponent of 0x010001 will be |
| 180 | * used. | 180 | * used. |
| @@ -338,7 +338,7 @@ static inline int zcrypt_type6_crt_key(struct ica_rsa_modexpo_crt *crt, | |||
| 338 | pub = (struct cca_public_sec *)(key->key_parts + key_len); | 338 | pub = (struct cca_public_sec *)(key->key_parts + key_len); |
| 339 | *pub = static_cca_pub_sec; | 339 | *pub = static_cca_pub_sec; |
| 340 | pub->modulus_bit_len = 8 * crt->inputdatalength; | 340 | pub->modulus_bit_len = 8 * crt->inputdatalength; |
| 341 | /** | 341 | /* |
| 342 | * In a private key, the modulus doesn't appear in the public | 342 | * In a private key, the modulus doesn't appear in the public |
| 343 | * section. So, an arbitrary public exponent of 0x010001 will be | 343 | * section. So, an arbitrary public exponent of 0x010001 will be |
| 344 | * used. | 344 | * used. |
diff --git a/drivers/s390/crypto/zcrypt_error.h b/drivers/s390/crypto/zcrypt_error.h index 2cb616ba8bec..3e27fe77d207 100644 --- a/drivers/s390/crypto/zcrypt_error.h +++ b/drivers/s390/crypto/zcrypt_error.h | |||
| @@ -108,7 +108,7 @@ static inline int convert_error(struct zcrypt_device *zdev, | |||
| 108 | return -EINVAL; | 108 | return -EINVAL; |
| 109 | case REP82_ERROR_MESSAGE_TYPE: | 109 | case REP82_ERROR_MESSAGE_TYPE: |
| 110 | // REP88_ERROR_MESSAGE_TYPE // '20' CEX2A | 110 | // REP88_ERROR_MESSAGE_TYPE // '20' CEX2A |
| 111 | /** | 111 | /* |
| 112 | * To sent a message of the wrong type is a bug in the | 112 | * To sent a message of the wrong type is a bug in the |
| 113 | * device driver. Warn about it, disable the device | 113 | * device driver. Warn about it, disable the device |
| 114 | * and then repeat the request. | 114 | * and then repeat the request. |
diff --git a/drivers/s390/crypto/zcrypt_pcicc.c b/drivers/s390/crypto/zcrypt_pcicc.c index d6d59bf9ac38..17ea56ce1c11 100644 --- a/drivers/s390/crypto/zcrypt_pcicc.c +++ b/drivers/s390/crypto/zcrypt_pcicc.c | |||
| @@ -42,7 +42,7 @@ | |||
| 42 | #define PCICC_MAX_MOD_SIZE_OLD 128 /* 1024 bits */ | 42 | #define PCICC_MAX_MOD_SIZE_OLD 128 /* 1024 bits */ |
| 43 | #define PCICC_MAX_MOD_SIZE 256 /* 2048 bits */ | 43 | #define PCICC_MAX_MOD_SIZE 256 /* 2048 bits */ |
| 44 | 44 | ||
| 45 | /** | 45 | /* |
| 46 | * PCICC cards need a speed rating of 0. This keeps them at the end of | 46 | * PCICC cards need a speed rating of 0. This keeps them at the end of |
| 47 | * the zcrypt device list (see zcrypt_api.c). PCICC cards are only | 47 | * the zcrypt device list (see zcrypt_api.c). PCICC cards are only |
| 48 | * used if no other cards are present because they are slow and can only | 48 | * used if no other cards are present because they are slow and can only |
| @@ -388,7 +388,7 @@ static int convert_type86(struct zcrypt_device *zdev, | |||
| 388 | reply_len = le16_to_cpu(msg->length) - 2; | 388 | reply_len = le16_to_cpu(msg->length) - 2; |
| 389 | if (reply_len > outputdatalength) | 389 | if (reply_len > outputdatalength) |
| 390 | return -EINVAL; | 390 | return -EINVAL; |
| 391 | /** | 391 | /* |
| 392 | * For all encipher requests, the length of the ciphertext (reply_len) | 392 | * For all encipher requests, the length of the ciphertext (reply_len) |
| 393 | * will always equal the modulus length. For MEX decipher requests | 393 | * will always equal the modulus length. For MEX decipher requests |
| 394 | * the output needs to get padded. Minimum pad size is 10. | 394 | * the output needs to get padded. Minimum pad size is 10. |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.c b/drivers/s390/crypto/zcrypt_pcixcc.c index 3674bfa82b65..0bc9b3188e64 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.c +++ b/drivers/s390/crypto/zcrypt_pcixcc.c | |||
| @@ -501,7 +501,7 @@ static int convert_type86_ica(struct zcrypt_device *zdev, | |||
| 501 | reply_len = msg->length - 2; | 501 | reply_len = msg->length - 2; |
| 502 | if (reply_len > outputdatalength) | 502 | if (reply_len > outputdatalength) |
| 503 | return -EINVAL; | 503 | return -EINVAL; |
| 504 | /** | 504 | /* |
| 505 | * For all encipher requests, the length of the ciphertext (reply_len) | 505 | * For all encipher requests, the length of the ciphertext (reply_len) |
| 506 | * will always equal the modulus length. For MEX decipher requests | 506 | * will always equal the modulus length. For MEX decipher requests |
| 507 | * the output needs to get padded. Minimum pad size is 10. | 507 | * the output needs to get padded. Minimum pad size is 10. |
