|
@@ -218,6 +218,15 @@ static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void physflat_init_apic_ldr(void)
|
|
|
|
+{
|
|
|
|
+ /*
|
|
|
|
+ * LDR and DFR are not involved in physflat mode, rather:
|
|
|
|
+ * "In physical destination mode, the destination processor is
|
|
|
|
+ * specified by its local APIC ID [...]." (Intel SDM, 10.6.2.1)
|
|
|
|
+ */
|
|
|
|
+}
|
|
|
|
+
|
|
static void physflat_send_IPI_allbutself(int vector)
|
|
static void physflat_send_IPI_allbutself(int vector)
|
|
{
|
|
{
|
|
default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
|
|
default_send_IPI_mask_allbutself_phys(cpu_online_mask, vector);
|
|
@@ -251,8 +260,7 @@ static struct apic apic_physflat __ro_after_init = {
|
|
.dest_logical = 0,
|
|
.dest_logical = 0,
|
|
.check_apicid_used = NULL,
|
|
.check_apicid_used = NULL,
|
|
|
|
|
|
- /* not needed, but shouldn't hurt: */
|
|
|
|
- .init_apic_ldr = flat_init_apic_ldr,
|
|
|
|
|
|
+ .init_apic_ldr = physflat_init_apic_ldr,
|
|
|
|
|
|
.ioapic_phys_id_map = NULL,
|
|
.ioapic_phys_id_map = NULL,
|
|
.setup_apic_routing = NULL,
|
|
.setup_apic_routing = NULL,
|