aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwuchi <[email protected]>2022-09-09 18:10:25 +0800
committerAndrew Morton <[email protected]>2022-10-03 14:21:43 -0700
commit83d87a4ddb3b4a42bb73b314b3d1acc3965a689f (patch)
tree408c35f2e47ba087912851ed3238b354ac584902
parent7ec354baa2ad6dcf1b481a5a582293cec0eb2a67 (diff)
relay: use kvcalloc to alloc page array in relay_alloc_page_array
kvcalloc() is safer because it will check the integer overflows, and using it will simple the logic of allocation size. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: wuchi <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Jens Axboe <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--kernel/relay.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/kernel/relay.c b/kernel/relay.c
index 6a611e779e95..d7edc934c56d 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -60,10 +60,7 @@ static const struct vm_operations_struct relay_file_mmap_ops = {
*/
static struct page **relay_alloc_page_array(unsigned int n_pages)
{
- const size_t pa_size = n_pages * sizeof(struct page *);
- if (pa_size > PAGE_SIZE)
- return vzalloc(pa_size);
- return kzalloc(pa_size, GFP_KERNEL);
+ return kvcalloc(n_pages, sizeof(struct page *), GFP_KERNEL);
}
/*