diff options
| -rw-r--r-- | drivers/acpi/processor_core.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index f1dd404463aa..4d91b32423a9 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
| @@ -71,28 +71,6 @@ static int map_lsapic_id(struct acpi_subtable_header *entry, | |||
| 71 | return 0; | 71 | return 0; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | static int map_gic_id(struct acpi_subtable_header *entry, | ||
| 75 | int device_declaration, u32 acpi_id, int *apic_id) | ||
| 76 | { | ||
| 77 | struct acpi_madt_generic_interrupt *gic = | ||
| 78 | (struct acpi_madt_generic_interrupt *)entry; | ||
| 79 | |||
| 80 | if (!(gic->flags & ACPI_MADT_ENABLED)) | ||
| 81 | return -ENODEV; | ||
| 82 | |||
| 83 | /* | ||
| 84 | * In the GIC interrupt model, logical processors are | ||
| 85 | * required to have a Processor Device object in the DSDT, | ||
| 86 | * so we should check device_declaration here | ||
| 87 | */ | ||
| 88 | if (device_declaration && (gic->uid == acpi_id)) { | ||
| 89 | *apic_id = gic->gic_id; | ||
| 90 | return 0; | ||
| 91 | } | ||
| 92 | |||
| 93 | return -EINVAL; | ||
| 94 | } | ||
| 95 | |||
| 96 | static int map_madt_entry(int type, u32 acpi_id) | 74 | static int map_madt_entry(int type, u32 acpi_id) |
| 97 | { | 75 | { |
| 98 | unsigned long madt_end, entry; | 76 | unsigned long madt_end, entry; |
| @@ -128,9 +106,6 @@ static int map_madt_entry(int type, u32 acpi_id) | |||
| 128 | } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { | 106 | } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { |
| 129 | if (!map_lsapic_id(header, type, acpi_id, &apic_id)) | 107 | if (!map_lsapic_id(header, type, acpi_id, &apic_id)) |
| 130 | break; | 108 | break; |
| 131 | } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) { | ||
| 132 | if (!map_gic_id(header, type, acpi_id, &apic_id)) | ||
| 133 | break; | ||
| 134 | } | 109 | } |
| 135 | entry += header->length; | 110 | entry += header->length; |
| 136 | } | 111 | } |
| @@ -161,8 +136,6 @@ static int map_mat_entry(acpi_handle handle, int type, u32 acpi_id) | |||
| 161 | map_lapic_id(header, acpi_id, &apic_id); | 136 | map_lapic_id(header, acpi_id, &apic_id); |
| 162 | } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { | 137 | } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { |
| 163 | map_lsapic_id(header, type, acpi_id, &apic_id); | 138 | map_lsapic_id(header, type, acpi_id, &apic_id); |
| 164 | } else if (header->type == ACPI_MADT_TYPE_GENERIC_INTERRUPT) { | ||
| 165 | map_gic_id(header, type, acpi_id, &apic_id); | ||
| 166 | } | 139 | } |
| 167 | 140 | ||
| 168 | exit: | 141 | exit: |
