回到start_kernel,进入到debug_objects_early_init()
void __init debug_objects_early_init(void)
{
int i;
for (i = 0; i < ODEBUG_HASH_SIZE; i++)
raw_spin_lock_init(&obj_hash[i].lock);
for (i = 0; i < ODEBUG_POOL_SIZE; i++)
hlist_add_head(&obj_static_pool[i].node, &obj_pool);
}
该函数的作用是初始化obj_hash、obj_static_pool这2个全局变量,这2个全局变量会在调试的时候用到。
继续往下走,来到函数boot_init_stack_canary(),这个函数的作用主要就是