@@ -316,22 +316,33 @@ void __init kasan_early_init(void)
316316 kasan_map_early_shadow (init_top_pgt );
317317}
318318
319+ static unsigned long kasan_mem_to_shadow_align_down (unsigned long va )
320+ {
321+ unsigned long shadow = (unsigned long )kasan_mem_to_shadow ((void * )va );
322+
323+ return round_down (shadow , PAGE_SIZE );
324+ }
325+
326+ static unsigned long kasan_mem_to_shadow_align_up (unsigned long va )
327+ {
328+ unsigned long shadow = (unsigned long )kasan_mem_to_shadow ((void * )va );
329+
330+ return round_up (shadow , PAGE_SIZE );
331+ }
332+
319333void __init kasan_populate_shadow_for_vaddr (void * va , size_t size , int nid )
320334{
321335 unsigned long shadow_start , shadow_end ;
322336
323- shadow_start = (unsigned long )kasan_mem_to_shadow (va );
324- shadow_start = round_down (shadow_start , PAGE_SIZE );
325- shadow_end = (unsigned long )kasan_mem_to_shadow (va + size );
326- shadow_end = round_up (shadow_end , PAGE_SIZE );
327-
337+ shadow_start = kasan_mem_to_shadow_align_down ((unsigned long )va );
338+ shadow_end = kasan_mem_to_shadow_align_up ((unsigned long )va + size );
328339 kasan_populate_shadow (shadow_start , shadow_end , nid );
329340}
330341
331342void __init kasan_init (void )
332343{
344+ unsigned long shadow_cea_begin , shadow_cea_end ;
333345 int i ;
334- void * shadow_cea_begin , * shadow_cea_end ;
335346
336347 memcpy (early_top_pgt , init_top_pgt , sizeof (early_top_pgt ));
337348
@@ -372,16 +383,9 @@ void __init kasan_init(void)
372383 map_range (& pfn_mapped [i ]);
373384 }
374385
375- shadow_cea_begin = (void * )CPU_ENTRY_AREA_BASE ;
376- shadow_cea_begin = kasan_mem_to_shadow (shadow_cea_begin );
377- shadow_cea_begin = (void * )round_down (
378- (unsigned long )shadow_cea_begin , PAGE_SIZE );
379-
380- shadow_cea_end = (void * )(CPU_ENTRY_AREA_BASE +
381- CPU_ENTRY_AREA_MAP_SIZE );
382- shadow_cea_end = kasan_mem_to_shadow (shadow_cea_end );
383- shadow_cea_end = (void * )round_up (
384- (unsigned long )shadow_cea_end , PAGE_SIZE );
386+ shadow_cea_begin = kasan_mem_to_shadow_align_down (CPU_ENTRY_AREA_BASE );
387+ shadow_cea_end = kasan_mem_to_shadow_align_up (CPU_ENTRY_AREA_BASE +
388+ CPU_ENTRY_AREA_MAP_SIZE );
385389
386390 kasan_populate_early_shadow (
387391 kasan_mem_to_shadow ((void * )PAGE_OFFSET + MAXMEM ),
@@ -403,9 +407,9 @@ void __init kasan_init(void)
403407
404408 kasan_populate_early_shadow (
405409 kasan_mem_to_shadow ((void * )VMALLOC_END + 1 ),
406- shadow_cea_begin );
410+ ( void * ) shadow_cea_begin );
407411
408- kasan_populate_early_shadow (shadow_cea_end ,
412+ kasan_populate_early_shadow (( void * ) shadow_cea_end ,
409413 kasan_mem_to_shadow ((void * )__START_KERNEL_map ));
410414
411415 kasan_populate_shadow ((unsigned long )kasan_mem_to_shadow (_stext ),
0 commit comments