s390/zcrypt: fix card and queue total counter wrap
The internal statistic counters for the total number of requests processed per card and per queue used integers. So they do wrap after a rather huge amount of crypto requests processed. This patch introduces uint64 counters which should hold much longer but still may wrap. The sysfs attributes request_count for card and queue also used only %ld and now display the counter value with %llu. This is not a security relevant fix. The int overflow which happened is not in any way exploitable as a security breach. Signed-off-by: Harald Freudenberger <freude@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:

committed by
Vasily Gorbik

parent
aab73d278d
commit
fcd98d4002
@@ -162,7 +162,7 @@ struct ap_card {
|
||||
unsigned int functions; /* AP device function bitfield. */
|
||||
int queue_depth; /* AP queue depth.*/
|
||||
int id; /* AP card number. */
|
||||
atomic_t total_request_count; /* # requests ever for this AP device.*/
|
||||
atomic64_t total_request_count; /* # requests ever for this AP device.*/
|
||||
};
|
||||
|
||||
#define to_ap_card(x) container_of((x), struct ap_card, ap_dev.device)
|
||||
@@ -179,7 +179,7 @@ struct ap_queue {
|
||||
enum ap_state state; /* State of the AP device. */
|
||||
int pendingq_count; /* # requests on pendingq list. */
|
||||
int requestq_count; /* # requests on requestq list. */
|
||||
int total_request_count; /* # requests ever for this AP device.*/
|
||||
u64 total_request_count; /* # requests ever for this AP device.*/
|
||||
int request_timeout; /* Request timeout in jiffies. */
|
||||
struct timer_list timeout; /* Timer for request timeouts. */
|
||||
struct list_head pendingq; /* List of message sent to AP queue. */
|
||||
|
Reference in New Issue
Block a user