@@ -316,22 +316,33 @@ void __init kasan_early_init(void)
316
316
kasan_map_early_shadow (init_top_pgt );
317
317
}
318
318
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
+
319
333
void __init kasan_populate_shadow_for_vaddr (void * va , size_t size , int nid )
320
334
{
321
335
unsigned long shadow_start , shadow_end ;
322
336
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 );
328
339
kasan_populate_shadow (shadow_start , shadow_end , nid );
329
340
}
330
341
331
342
void __init kasan_init (void )
332
343
{
344
+ unsigned long shadow_cea_begin , shadow_cea_end ;
333
345
int i ;
334
- void * shadow_cea_begin , * shadow_cea_end ;
335
346
336
347
memcpy (early_top_pgt , init_top_pgt , sizeof (early_top_pgt ));
337
348
@@ -372,16 +383,9 @@ void __init kasan_init(void)
372
383
map_range (& pfn_mapped [i ]);
373
384
}
374
385
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 );
385
389
386
390
kasan_populate_early_shadow (
387
391
kasan_mem_to_shadow ((void * )PAGE_OFFSET + MAXMEM ),
@@ -403,9 +407,9 @@ void __init kasan_init(void)
403
407
404
408
kasan_populate_early_shadow (
405
409
kasan_mem_to_shadow ((void * )VMALLOC_END + 1 ),
406
- shadow_cea_begin );
410
+ ( void * ) shadow_cea_begin );
407
411
408
- kasan_populate_early_shadow (shadow_cea_end ,
412
+ kasan_populate_early_shadow (( void * ) shadow_cea_end ,
409
413
kasan_mem_to_shadow ((void * )__START_KERNEL_map ));
410
414
411
415
kasan_populate_shadow ((unsigned long )kasan_mem_to_shadow (_stext ),
0 commit comments