/ Just any arbitrary offset to the start of the vmalloc VM area: the
current 8MB value just means that there will be a 8MB "hole" after the
physical memory until the kernel virtual memory starts. That means that
any out-of-bounds memory accesses will hopefully be caught.
The vmalloc() routines leaves a hole of 4kB between each vmalloced
area for the same reason. ;)
/
#define VMALLOC_OFFSET (8 1024 1024)
#define VMALLOC_START (((unsigned long)high_memory + 2 VMALLOC_OFFSET - 1)
& ~(VMALLOC_OFFSET - 1))
# define VMALLOC_END (PKMAP_BASE - 2 PAGE_SIZE)
#define LAST_PKMAP 1024
#define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE (LAST_PKMAP + 1))
& PMD_MASK)
// PGDIR_SIZE == PMD_SIZE == 22
// PGDIR_SHIFT == PMD_SHIFT
// PGDIR_MASK == PMD_MASK
#define FIXADDR_BOOT_START (FIXADDR_TOP - FIXADDR_BOOT_SIZE)
#define FIXADDR_TOP ((unsigned long)FIXADDR_TOP)
unsigned long FIXADDR_TOP = 0xfffff000;
#define FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)