Commit 50a7d3ba authored by Kees Cook's avatar Kees Cook Committed by Mike Snitzer

dm writecache: use 2-factor allocator arguments

This adjusts the allocator calls to use the 2-factor argument style, as
already done treewide for better defense against allocator overflows.
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
[snitzer: tweaked code to leave assignment in a test alone]
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 7ccdbf85
...@@ -259,7 +259,7 @@ static int persistent_memory_claim(struct dm_writecache *wc) ...@@ -259,7 +259,7 @@ static int persistent_memory_claim(struct dm_writecache *wc)
if (da != p) { if (da != p) {
long i; long i;
wc->memory_map = NULL; wc->memory_map = NULL;
pages = kvmalloc(p * sizeof(struct page *), GFP_KERNEL); pages = kvmalloc_array(p, sizeof(struct page *), GFP_KERNEL);
if (!pages) { if (!pages) {
r = -ENOMEM; r = -ENOMEM;
goto err2; goto err2;
...@@ -859,7 +859,7 @@ static int writecache_alloc_entries(struct dm_writecache *wc) ...@@ -859,7 +859,7 @@ static int writecache_alloc_entries(struct dm_writecache *wc)
if (wc->entries) if (wc->entries)
return 0; return 0;
wc->entries = vmalloc(sizeof(struct wc_entry) * wc->n_blocks); wc->entries = vmalloc(array_size(sizeof(struct wc_entry), wc->n_blocks));
if (!wc->entries) if (!wc->entries)
return -ENOMEM; return -ENOMEM;
for (b = 0; b < wc->n_blocks; b++) { for (b = 0; b < wc->n_blocks; b++) {
...@@ -1481,9 +1481,9 @@ static void __writecache_writeback_pmem(struct dm_writecache *wc, struct writeba ...@@ -1481,9 +1481,9 @@ static void __writecache_writeback_pmem(struct dm_writecache *wc, struct writeba
wb->bio.bi_iter.bi_sector = read_original_sector(wc, e); wb->bio.bi_iter.bi_sector = read_original_sector(wc, e);
wb->page_offset = PAGE_SIZE; wb->page_offset = PAGE_SIZE;
if (max_pages <= WB_LIST_INLINE || if (max_pages <= WB_LIST_INLINE ||
unlikely(!(wb->wc_list = kmalloc(max_pages * sizeof(struct wc_entry *), unlikely(!(wb->wc_list = kmalloc_array(max_pages, sizeof(struct wc_entry *),
GFP_NOIO | __GFP_NORETRY | GFP_NOIO | __GFP_NORETRY |
__GFP_NOMEMALLOC | __GFP_NOWARN)))) { __GFP_NOMEMALLOC | __GFP_NOWARN)))) {
wb->wc_list = wb->wc_list_inline; wb->wc_list = wb->wc_list_inline;
max_pages = WB_LIST_INLINE; max_pages = WB_LIST_INLINE;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment