From: Gu Zheng Date: Tue, 14 Feb 2017 03:26:11 +0000 (+0800) Subject: LU-9116 libcfs: avoid overflow of crypto bandwidth caculation X-Git-Tag: 2.9.54~21 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F36%2F25436%2F4;p=fs%2Flustre-release.git LU-9116 libcfs: avoid overflow of crypto bandwidth caculation bcount and buf_len are both int, and no force convert in the caculation code: tmp = ((bcount * buf_len / jiffies_to_msecs(end - start)) * 1000) / (1024 * 1024); That may cause overflow in modern fast machine. Change-Id: I1e5abccad3e4df62907317a09de02beb6d831e13 Signed-off-by: Gu Zheng Reviewed-on: https://review.whamcloud.com/25436 Reviewed-by: Andreas Dilger Reviewed-by: Emoly Liu Tested-by: Jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Li Xi --- diff --git a/libcfs/libcfs/linux/linux-crypto.c b/libcfs/libcfs/linux/linux-crypto.c index a8c2ccd..1a0a105 100644 --- a/libcfs/libcfs/linux/linux-crypto.c +++ b/libcfs/libcfs/linux/linux-crypto.c @@ -319,7 +319,8 @@ static void cfs_crypto_performance_test(enum cfs_crypto_hash_alg hash_alg) int buf_len = max(PAGE_SIZE, 1048576UL); void *buf; unsigned long start, end; - int bcount, err = 0; + int err = 0; + unsigned long bcount; struct page *page; unsigned char hash[CFS_CRYPTO_HASH_DIGESTSIZE_MAX]; unsigned int hash_len = sizeof(hash);