summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/kasan/kasan.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
index f185455b3406..c3bd5209da38 100644
--- a/mm/kasan/kasan.c
+++ b/mm/kasan/kasan.c
@@ -619,12 +619,13 @@ void kasan_kfree_large(void *ptr, unsigned long ip)
619int kasan_module_alloc(void *addr, size_t size) 619int kasan_module_alloc(void *addr, size_t size)
620{ 620{
621 void *ret; 621 void *ret;
622 size_t scaled_size;
622 size_t shadow_size; 623 size_t shadow_size;
623 unsigned long shadow_start; 624 unsigned long shadow_start;
624 625
625 shadow_start = (unsigned long)kasan_mem_to_shadow(addr); 626 shadow_start = (unsigned long)kasan_mem_to_shadow(addr);
626 shadow_size = round_up(size >> KASAN_SHADOW_SCALE_SHIFT, 627 scaled_size = (size + KASAN_SHADOW_MASK) >> KASAN_SHADOW_SCALE_SHIFT;
627 PAGE_SIZE); 628 shadow_size = round_up(scaled_size, PAGE_SIZE);
628 629
629 if (WARN_ON(!PAGE_ALIGNED(shadow_start))) 630 if (WARN_ON(!PAGE_ALIGNED(shadow_start)))
630 return -EINVAL; 631 return -EINVAL;