qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] acpi/crs: Prevent bad ranges for host bridges
@ 2020-10-26 19:39 Ben Widawsky
  2020-10-26 19:39 ` [PATCH 2/2] acpi/crs: Support ranges > 32b for hosts Ben Widawsky
  2020-10-29 13:59 ` [PATCH 1/2] acpi/crs: Prevent bad ranges for host bridges Igor Mammedov
  0 siblings, 2 replies; 6+ messages in thread
From: Ben Widawsky @ 2020-10-26 19:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Ben Widawsky, Eduardo Habkost, Michael S. Tsirkin, Paolo Bonzini,
	Igor Mammedov, Richard Henderson

Prevent _CRS resources being quietly chopped off and instead throw an
assertion. _CRS is used by host bridges to declare regions of io and/or
memory that they consume. On some (all?) platforms the host bridge
doesn't have PCI header space and so they need some way to convey the
information.

Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>

---

1. I'm not aware of this being a real issue on platforms today as I think
   many platforms that use ACPI and actually have regions, constrain to
   32b to be complaint with legacy.
2. Since host bridges aren't usually hot plugged, it can't be invoked by
   a user, so assert() seems like the right way to handle this.
---
 hw/i386/acpi-build.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index eee7b57c37..df13abecf4 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -869,6 +869,8 @@ static Aml *build_crs(PCIHostState *host, CrsRangeSet *range_set)
     crs_range_merge(temp_range_set.mem_ranges);
     for (i = 0; i < temp_range_set.mem_ranges->len; i++) {
         entry = g_ptr_array_index(temp_range_set.mem_ranges, i);
+        assert(entry->limit <= UINT32_MAX &&
+               (entry->limit - entry->base + 1) <= UINT32_MAX);
         aml_append(crs,
                    aml_dword_memory(AML_POS_DECODE, AML_MIN_FIXED,
                                     AML_MAX_FIXED, AML_NON_CACHEABLE,
-- 
2.29.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-10-29 14:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-26 19:39 [PATCH 1/2] acpi/crs: Prevent bad ranges for host bridges Ben Widawsky
2020-10-26 19:39 ` [PATCH 2/2] acpi/crs: Support ranges > 32b for hosts Ben Widawsky
2020-10-27 14:36   ` Igor Mammedov
2020-10-27 15:45     ` Ben Widawsky
2020-10-29 13:57       ` Igor Mammedov
2020-10-29 13:59 ` [PATCH 1/2] acpi/crs: Prevent bad ranges for host bridges Igor Mammedov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).