The initialization of gate descriptors was changed from using
set_intr_gate_ist() to idt_setup_from_table, which initalizes the
struct idt_data def_idts[] array.
Commit: https://lkml.org/lkml/2017/8/25/732
Update the entry point definition to contain the new read_cr2 attribute
Commit: https://lkml.org/lkml/2019/7/4/656
Update ENTRY and END macro to the new SYM_CODE_START & SYM_CODE_END
Commit: https://lkml.org/lkml/2019/10/11/344
Update the description of the code passages accordingly.
Replace irq_stack_union with fixed_percpu_data
Add missing punctuation
Improve sentence structure:
s/the ability to switch to a new stack for events non-maskable interrupt
interrupt/the ability to switch to a new stack for events like a non-maskable interrupt/
Replace the removed initialization within setup_percpu.c with the
initialization for X86_64 defined within irq_64.c
Change the description accordingly.
Replace irq_stack_union with fixed_percpu_data
Update to the current system map
Update description of initialization process
Replace DECLARE macros with the current implementation
Within /arch/x86/kernel/head_64.S the implementation of the
initialization was changed.
Update the passage accordingly.
b1bd27b9ad (diff-a136f03867893e5d01eeadaba59c2dff)
Also fix a typo from a previous commit.
The irq_stack is no longer within a irq_stack_union
but separated into the irq_stack struct and the fixed_percpu_data struct
This change was made with the following series of commits:
e6401c1309 (diff-7db868ab08485b2578c9f97e45fb7d00)
While reading about initcalls around the web and kernel source code I found
that the information of what happens to __init functions not explicitly set to
any initcall list pretty useful. With this patch such information is added.
Signed-off-by: Bruno Meneguele <bmeneguele@gmail.com>
This patch handle different typos present in the initcall section of the book.
It also reword some paragraphs in order to get it clearer to the reader.
Some example codes were also added in order to help the reader to understand
smaller concepts, like the way initcalls callbacks are named in the object
file.
Signed-off-by: Bruno Meneguele <bmeneguele@gmail.com>
I may be misunderstanding the original meaning of the line, however "after the factorial function" seems to mean it would be "offset after the factorial function" (i.e. `0x400537 + 0x18`) but in reality you mean offset after the call function to get to the factorial function (`0x40051a + 0x5 + 0x18`). Very minor edit but may help for clarity. Thanks for creating such an awesome project.