|
@@ -82,6 +82,19 @@ void __init x86_64_start_kernel(char * real_mode_data)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
+ /*
|
|
|
+ * Build-time sanity checks on the kernel image and module
|
|
|
+ * area mappings. (these are purely build-time and produce no code)
|
|
|
+ */
|
|
|
+ BUILD_BUG_ON(MODULES_VADDR < KERNEL_IMAGE_START);
|
|
|
+ BUILD_BUG_ON(MODULES_VADDR-KERNEL_IMAGE_START < KERNEL_IMAGE_SIZE);
|
|
|
+ BUILD_BUG_ON(MODULES_LEN + KERNEL_IMAGE_SIZE > 2*PUD_SIZE);
|
|
|
+ BUILD_BUG_ON((KERNEL_IMAGE_START & ~PMD_MASK) != 0);
|
|
|
+ BUILD_BUG_ON((MODULES_VADDR & ~PMD_MASK) != 0);
|
|
|
+ BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL));
|
|
|
+ BUILD_BUG_ON(!(((MODULES_END - 1) & PGDIR_MASK) ==
|
|
|
+ (__START_KERNEL & PGDIR_MASK)));
|
|
|
+
|
|
|
/* clear bss before set_intr_gate with early_idt_handler */
|
|
|
clear_bss();
|
|
|
|