-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 112639 b: refs/heads/master c: ad3ad3f h: refs/heads/master i: 112637: aff88c6 112635: 85a501f 112631: 71f4b2e 112623: 786d700 112607: b19ac93 112575: 390ad35 112511: 237c049 112383: 4eb0d39 112127: 4241a0d 111615: 7c62613 110591: 6c83fc6 v: v3
- Loading branch information
Suresh Siddha
authored and
Ingo Molnar
committed
Jul 12, 2008
1 parent
565bc37
commit 6447e5a
Showing
7 changed files
with
85 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 2d6b5f85bb4ca919d8ab0f30311309b53fb93bc3 | ||
refs/heads/master: ad3ad3f6a2caebf56869b83b69e23eb9fa5e0ab6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#include <linux/dmar.h> | ||
#include <asm/io_apic.h> | ||
#include "intel-iommu.h" | ||
#include "intr_remapping.h" | ||
|
||
static struct ioapic_scope ir_ioapic[MAX_IO_APICS]; | ||
static int ir_ioapic_num; | ||
|
||
static int ir_parse_ioapic_scope(struct acpi_dmar_header *header, | ||
struct intel_iommu *iommu) | ||
{ | ||
struct acpi_dmar_hardware_unit *drhd; | ||
struct acpi_dmar_device_scope *scope; | ||
void *start, *end; | ||
|
||
drhd = (struct acpi_dmar_hardware_unit *)header; | ||
|
||
start = (void *)(drhd + 1); | ||
end = ((void *)drhd) + header->length; | ||
|
||
while (start < end) { | ||
scope = start; | ||
if (scope->entry_type == ACPI_DMAR_SCOPE_TYPE_IOAPIC) { | ||
if (ir_ioapic_num == MAX_IO_APICS) { | ||
printk(KERN_WARNING "Exceeded Max IO APICS\n"); | ||
return -1; | ||
} | ||
|
||
printk(KERN_INFO "IOAPIC id %d under DRHD base" | ||
" 0x%Lx\n", scope->enumeration_id, | ||
drhd->address); | ||
|
||
ir_ioapic[ir_ioapic_num].iommu = iommu; | ||
ir_ioapic[ir_ioapic_num].id = scope->enumeration_id; | ||
ir_ioapic_num++; | ||
} | ||
start += scope->length; | ||
} | ||
|
||
return 0; | ||
} | ||
|
||
/* | ||
* Finds the assocaition between IOAPIC's and its Interrupt-remapping | ||
* hardware unit. | ||
*/ | ||
int __init parse_ioapics_under_ir(void) | ||
{ | ||
struct dmar_drhd_unit *drhd; | ||
int ir_supported = 0; | ||
|
||
for_each_drhd_unit(drhd) { | ||
struct intel_iommu *iommu = drhd->iommu; | ||
|
||
if (ecap_ir_support(iommu->ecap)) { | ||
if (ir_parse_ioapic_scope(drhd->hdr, iommu)) | ||
return -1; | ||
|
||
ir_supported = 1; | ||
} | ||
} | ||
|
||
if (ir_supported && ir_ioapic_num != nr_ioapics) { | ||
printk(KERN_WARNING | ||
"Not all IO-APIC's listed under remapping hardware\n"); | ||
return -1; | ||
} | ||
|
||
return ir_supported; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#include "intel-iommu.h" | ||
|
||
struct ioapic_scope { | ||
struct intel_iommu *iommu; | ||
unsigned int id; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters