head_64.S (a292241cccb7e20e8b997a9a44177e7c98141859) head_64.S (ef7f0d6a6ca8c9e4b27d78895af86c2fbfaeedb2)
1/*
2 * linux/arch/x86_64/kernel/head.S -- start in 32bit and switch to 64bit
3 *
4 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
5 * Copyright (C) 2000 Pavel Machek <pavel@suse.cz>
6 * Copyright (C) 2000 Karsten Keil <kkeil@suse.de>
7 * Copyright (C) 2001,2002 Andi Kleen <ak@suse.de>
8 * Copyright (C) 2005 Eric Biederman <ebiederm@xmission.com>

--- 500 unchanged lines hidden (view full) ---

509 .word GDT_ENTRIES*8-1
510early_gdt_descr_base:
511 .quad INIT_PER_CPU_VAR(gdt_page)
512
513ENTRY(phys_base)
514 /* This must match the first entry in level2_kernel_pgt */
515 .quad 0x0000000000000000
516
1/*
2 * linux/arch/x86_64/kernel/head.S -- start in 32bit and switch to 64bit
3 *
4 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
5 * Copyright (C) 2000 Pavel Machek <pavel@suse.cz>
6 * Copyright (C) 2000 Karsten Keil <kkeil@suse.de>
7 * Copyright (C) 2001,2002 Andi Kleen <ak@suse.de>
8 * Copyright (C) 2005 Eric Biederman <ebiederm@xmission.com>

--- 500 unchanged lines hidden (view full) ---

509 .word GDT_ENTRIES*8-1
510early_gdt_descr_base:
511 .quad INIT_PER_CPU_VAR(gdt_page)
512
513ENTRY(phys_base)
514 /* This must match the first entry in level2_kernel_pgt */
515 .quad 0x0000000000000000
516
517#ifdef CONFIG_KASAN
518#define FILL(VAL, COUNT) \
519 .rept (COUNT) ; \
520 .quad (VAL) ; \
521 .endr
522
523NEXT_PAGE(kasan_zero_pte)
524 FILL(kasan_zero_page - __START_KERNEL_map + _KERNPG_TABLE, 512)
525NEXT_PAGE(kasan_zero_pmd)
526 FILL(kasan_zero_pte - __START_KERNEL_map + _KERNPG_TABLE, 512)
527NEXT_PAGE(kasan_zero_pud)
528 FILL(kasan_zero_pmd - __START_KERNEL_map + _KERNPG_TABLE, 512)
529
530#undef FILL
531#endif
532
533
517#include "../../x86/xen/xen-head.S"
518
519 __PAGE_ALIGNED_BSS
520NEXT_PAGE(empty_zero_page)
521 .skip PAGE_SIZE
534#include "../../x86/xen/xen-head.S"
535
536 __PAGE_ALIGNED_BSS
537NEXT_PAGE(empty_zero_page)
538 .skip PAGE_SIZE
539
540#ifdef CONFIG_KASAN
541/*
542 * This page used as early shadow. We don't use empty_zero_page
543 * at early stages, stack instrumentation could write some garbage
544 * to this page.
545 * Latter we reuse it as zero shadow for large ranges of memory
546 * that allowed to access, but not instrumented by kasan
547 * (vmalloc/vmemmap ...).
548 */
549NEXT_PAGE(kasan_zero_page)
550 .skip PAGE_SIZE
551#endif