mirror of
https://github.com/torvalds/linux.git
synced 2024-11-08 05:01:48 +00:00
x86, doc: Adding comments about .iommu_table and its neighbors.
Updating the linker section with comments about .iommu_table and some other ones that I know of. CC: Sam Ravnborg <sam@ravnborg.org> CC: H. Peter Anvin <hpa@zytor.com> CC: Fujita Tomonori <fujita.tomonori@lab.ntt.co.jp> CC: Thomas Gleixner <tglx@linutronix.de> CC: Ingo Molnar <mingo@redhat.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> LKML-Reference: <1282933173-19960-1-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
ee1f284f38
commit
6f44d0337c
@ -242,6 +242,12 @@ SECTIONS
|
|||||||
__x86_cpu_dev_end = .;
|
__x86_cpu_dev_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* start address and size of operations which during runtime
|
||||||
|
* can be patched with virtualization friendly instructions or
|
||||||
|
* baremetal native ones. Think page table operations.
|
||||||
|
* Details in paravirt_types.h
|
||||||
|
*/
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
|
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
|
||||||
__parainstructions = .;
|
__parainstructions = .;
|
||||||
@ -249,6 +255,11 @@ SECTIONS
|
|||||||
__parainstructions_end = .;
|
__parainstructions_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct alt_inst entries. From the header (alternative.h):
|
||||||
|
* "Alternative instructions for different CPU types or capabilities"
|
||||||
|
* Think locking instructions on spinlocks.
|
||||||
|
*/
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
.altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
|
.altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
|
||||||
__alt_instructions = .;
|
__alt_instructions = .;
|
||||||
@ -256,10 +267,21 @@ SECTIONS
|
|||||||
__alt_instructions_end = .;
|
__alt_instructions_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* And here are the replacement instructions. The linker sticks
|
||||||
|
* them as binary blobs. The .altinstructions has enough data to
|
||||||
|
* get the address and the length of them to patch the kernel safely.
|
||||||
|
*/
|
||||||
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
|
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
|
||||||
*(.altinstr_replacement)
|
*(.altinstr_replacement)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct iommu_table_entry entries are injected in this section.
|
||||||
|
* It is an array of IOMMUs which during run time gets sorted depending
|
||||||
|
* on its dependency order. After rootfs_initcall is complete
|
||||||
|
* this section can be safely removed.
|
||||||
|
*/
|
||||||
.iommu_table : AT(ADDR(.iommu_table) - LOAD_OFFSET) {
|
.iommu_table : AT(ADDR(.iommu_table) - LOAD_OFFSET) {
|
||||||
__iommu_table = .;
|
__iommu_table = .;
|
||||||
*(.iommu_table)
|
*(.iommu_table)
|
||||||
|
Loading…
Reference in New Issue
Block a user