[PATCH v3] bcache: Use vmalloc_array() to improve code

tanze <[email protected]> Thu, 23 Oct 2025 14:06:29 +0800
Newsgroups org.kernel.vger.linux-bcache,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Remove array_size() calls and replace vmalloc(),
due to vmalloc_array() being optimized better,
using fewer instructions, and handling overflow more concisely.

Signed-off-by: tanze <[email protected]>

---
Hi, Coly Li.

Thank you for your prompt reply. 
I have resubmitted the v3 version of the patch, 
with revisions made as per your requirements.

Best regards,
Ze Tan
---
Changes in v3:
- The empty line has been deleted.
---
 drivers/md/bcache/sysfs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
index 826b14cae4e5..7bb5605ad7fb 100644
--- a/drivers/md/bcache/sysfs.c
+++ b/drivers/md/bcache/sysfs.c
@@ -1061,8 +1061,7 @@ SHOW(__bch_cache)
 		uint16_t q[31], *p, *cached;
 		ssize_t ret;
 
-		cached = p = vmalloc(array_size(sizeof(uint16_t),
-						ca->sb.nbuckets));
+		cached = p = vmalloc_array(ca->sb.nbuckets, sizeof(uint16_t));
 		if (!p)
 			return -ENOMEM;
 
-- 
2.25.1