diff options
author | Roland Dreier <rdreier@cisco.com> | 2009-09-24 15:14:00 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-09-24 15:19:39 -0400 |
commit | 17b6097753e926ca546189463070a7e94e7ea9fa (patch) | |
tree | a39bb6715db3951e3dbb2f7b64fc57ef46f3f04b /drivers/pci/dmar.c | |
parent | 4de75cf9391b538bbfe7dc0a9782f1ebe8e242ad (diff) |
intel-iommu: Decode (and ignore) RHSA entries
I recently got a system where the DMAR table included a couple of RHSA
(remapping hardware static affinity) entries. Rather than printing a
message about an "Unknown DMAR structure," it would probably be more
useful to dump the RHSA structure (as other DMAR structures are dumped).
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/pci/dmar.c')
-rw-r--r-- | drivers/pci/dmar.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index d199bcabed7..22b02c6df85 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c | |||
@@ -354,6 +354,7 @@ dmar_table_print_dmar_entry(struct acpi_dmar_header *header) | |||
354 | struct acpi_dmar_hardware_unit *drhd; | 354 | struct acpi_dmar_hardware_unit *drhd; |
355 | struct acpi_dmar_reserved_memory *rmrr; | 355 | struct acpi_dmar_reserved_memory *rmrr; |
356 | struct acpi_dmar_atsr *atsr; | 356 | struct acpi_dmar_atsr *atsr; |
357 | struct acpi_dmar_rhsa *rhsa; | ||
357 | 358 | ||
358 | switch (header->type) { | 359 | switch (header->type) { |
359 | case ACPI_DMAR_TYPE_HARDWARE_UNIT: | 360 | case ACPI_DMAR_TYPE_HARDWARE_UNIT: |
@@ -375,6 +376,12 @@ dmar_table_print_dmar_entry(struct acpi_dmar_header *header) | |||
375 | atsr = container_of(header, struct acpi_dmar_atsr, header); | 376 | atsr = container_of(header, struct acpi_dmar_atsr, header); |
376 | printk(KERN_INFO PREFIX "ATSR flags: %#x\n", atsr->flags); | 377 | printk(KERN_INFO PREFIX "ATSR flags: %#x\n", atsr->flags); |
377 | break; | 378 | break; |
379 | case ACPI_DMAR_HARDWARE_AFFINITY: | ||
380 | rhsa = container_of(header, struct acpi_dmar_rhsa, header); | ||
381 | printk(KERN_INFO PREFIX "RHSA base: %#016Lx proximity domain: %#x\n", | ||
382 | (unsigned long long)rhsa->base_address, | ||
383 | rhsa->proximity_domain); | ||
384 | break; | ||
378 | } | 385 | } |
379 | } | 386 | } |
380 | 387 | ||
@@ -459,6 +466,9 @@ parse_dmar_table(void) | |||
459 | ret = dmar_parse_one_atsr(entry_header); | 466 | ret = dmar_parse_one_atsr(entry_header); |
460 | #endif | 467 | #endif |
461 | break; | 468 | break; |
469 | case ACPI_DMAR_HARDWARE_AFFINITY: | ||
470 | /* We don't do anything with RHSA (yet?) */ | ||
471 | break; | ||
462 | default: | 472 | default: |
463 | printk(KERN_WARNING PREFIX | 473 | printk(KERN_WARNING PREFIX |
464 | "Unknown DMAR structure type %d\n", | 474 | "Unknown DMAR structure type %d\n", |