diff options
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 2627a81253ee..c7f61cf5e43d 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
| @@ -141,16 +141,8 @@ static u32 irq_to_gsi(int irq) | |||
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | /* | 143 | /* |
| 144 | * Temporarily use the virtual area starting from FIX_IO_APIC_BASE_END, | 144 | * This is just a simple wrapper around early_ioremap(), |
| 145 | * to map the target physical address. The problem is that set_fixmap() | 145 | * with sanity checks for phys == 0 and size == 0. |
| 146 | * provides a single page, and it is possible that the page is not | ||
| 147 | * sufficient. | ||
| 148 | * By using this area, we can map up to MAX_IO_APICS pages temporarily, | ||
| 149 | * i.e. until the next __va_range() call. | ||
| 150 | * | ||
| 151 | * Important Safety Note: The fixed I/O APIC page numbers are *subtracted* | ||
| 152 | * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and | ||
| 153 | * count idx down while incrementing the phys address. | ||
| 154 | */ | 146 | */ |
| 155 | char *__init __acpi_map_table(unsigned long phys, unsigned long size) | 147 | char *__init __acpi_map_table(unsigned long phys, unsigned long size) |
| 156 | { | 148 | { |
| @@ -160,6 +152,7 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size) | |||
| 160 | 152 | ||
| 161 | return early_ioremap(phys, size); | 153 | return early_ioremap(phys, size); |
| 162 | } | 154 | } |
| 155 | |||
| 163 | void __init __acpi_unmap_table(char *map, unsigned long size) | 156 | void __init __acpi_unmap_table(char *map, unsigned long size) |
| 164 | { | 157 | { |
| 165 | if (!map || !size) | 158 | if (!map || !size) |
