diff options
-rw-r--r-- | mm/kasan/kasan.c | 5 |
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) | |||
619 | int kasan_module_alloc(void *addr, size_t size) | 619 | int 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; |